for(i=0;i这里末尾不能加;,加了就表示这是一个完整的循环,后面的语句和这个循环没关系了.
while也是个循环,你这里应该用if
数组在调用时只要数组名就行了,把printf里面的a[N]改成a
正确代码如下:
#include
#include
#define N 100
main()
{
int i=0,b=0,c=0;
char a[N]="";
gets(a);
b=strlen(a);
for(i=0;iif(a[i]!=a[b-i-1]) //if
{
printf("%s不是回文",a);//a
break;
}
printf("%s是回文",a);
printf("\n");
}
strlen返回的是字符串的长度,
实际的数组a[]里的内容长度要多加1,因为有一个字符串结尾符'\0'
你看一下,是不是这个没有考虑进去
也就是说
不是a[i]!=a[b-i-1]
而是a[i]!=a[b-i]
#include
#include
#define N 100
main()
{
int i=0,b=0,c=0;
char a[N]="";
gets(a);
b=strlen(a);
for(i=0;iif(a[i]!=a[b-i-1])
{
printf("%s不是回文\n",a);
return;
}
printf("%s是回文",a);
printf("\n");
}
//错了,应该改成这样
printf("%s是回文",a);