高手指点迷津:修改错误一个C程序!(高分!)

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:15:44
摘自C语言程序设计(曾怡)第二十六讲
原题:写一函数判断一个字符串是否是回文(顺读逆读相同)
编写程序如下:方法一:
#include <stdio.h>
int ishuiwen(char *p)
{ char *q=p;
while(*q!='\0') q++;
q--;
while(p<q)
if(*p==*q)
{ p++;
q--;
}
else return 0;
return 1;
}
void main()
{ char a[13];
int state,i;
for(i=0;i<13;i++)
scanf("%c",&a[i]);
state=ishuiwen(a);
if(state) printf("It's huiwen");
else printf("It isn't huiwen");
}
方法二
#include <stdio.h>
int ishuiwen(char *p)
{ char *q=p;
while(*q) q++;
q--;
while(p<q)
if(*p++!=*q--)
return 0;
return 1;
}
void main()
{ char a[13];
int state,i;
for(i=0;i<13;i++)
scanf("%c",&a[i]);
state=ishuiwen(a);
if(state) printf("It's huiwen&

后者也可以,但你要输入一个字符就回车
一共输入13次,相当麻烦
方法1
int ishuiwen(char *p)
{ char *q=p;
while(*q!='\0') q++;
q--;
while(p<q)
if(*p==*q)
{ p++;
q--;
}
else return 0;
return 1;
}
void main()
{ char a[13];
int state;
scanf("%s",a);
state=ishuiwen(a);
if(state) printf("It's huiwen\n");
else printf("It isn't huiwen\n");
}

方法2
#include <stdio.h>
int ishuiwen(char *p)
{ char *q=p;
while(*q) q++;
q--;
while(p<q)
if(*p++!=*q--)
return 0;
return 1;
}
void main()
{ char a[13];
int state;
scanf("%s",a);
state=ishuiwen(a);
if(state) printf("It's huiwen\n");
else printf("It isn't huiwen\n");
}
都用scanf("%s",a);输入,不要一个字符一个字符的输入

看不懂!