回 帖 发 新 帖 刷新版面

主题:高手帮看看啊!堆栈!

#include<stdio.h>
#define MAXCHAR 40
#define NULL 0

struct node
{
char data;
struct node*next;
};
int ishs(struct node *head,int n)
{
char stack[MAXCHAR];
struct node *p=head;
int top=0;


while(top<n/2)
{
stack[top]=p->data;
printf("%c",stack[top]);
p=p->next;
top++;
}
if(n%2==1)
 p=p->next;
 top--;
 while(strcmp(stack[top],p->data)==0)
  {
   p=p->next;
    top--;
    }
  [color=000080][color=800080][color=000080] if(top==-1&&p=NULL)[/color][/color][/color]     return(1);
      else
       return(0);
       }
 main()
 {
         char s[MAXCHAR];
         struct node *head=NULL,*p,*q;
         int I=0;
         printf("please input a data:\n");
         scanf("%s",s);
         while(s[I]!='\0')
          {p=(struct node *)malloc(sizeof(struct node));
          if(I==0)
          {head=p;
          p->data=s[0];
          q=p;
          p->next=NULL;
          I++;}
          else{p->data=s[I];
          q->next=p;
          p->next=NULL;
          q=p;
          I++;}
          if(head!=NULL)
          do{printf("%c",p->data);
             p=p->next;
             }while(p!=NULL);
         }
       if(ishs(head,I))
       printf("%s is a hui wen shu \n",s);
       else
       printf("NOT\n");
       getch();
       }
   这是堆栈的应用---判断一个数是不是回文数
  颜色不同的地方 一调试就说ishs函数需要逻辑0或非0 
怎么回事啊 明天交作业 
希望高手们帮看看!

回复列表 (共3个回复)

沙发


   if(top==-1&&p=NULL)  
   you must change    if(top==-1&&p==NULL)
   you can see ,can you define that if(i = 2)?   
   it  do not  evaluate  ,it judge.

板凳


bu what can i do ,change what?

3 楼

if(top==-1&&p==NULL) 
逻辑有错误啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册