编写程序,判断给定字符串是否为回文。(回文是指正读和逆读 都一样的字符串) 不知道错在哪里了〒_〒

2024-11-29 03:38:01
推荐回答(2个)
回答(1):

/*

请输入字符串:12021

12021:是.

请输入字符串:1

1:是.

请输入字符串:12

12:不是.

请输入字符串:1233

1233:不是.

请输入字符串:12211221

12211221:是.

请输入字符串:^Z


Press any key to continue

*/

#include 
#include 

int main() {
int s,i,flag;
char a[100];
while(printf("请输入字符串:"),scanf("%s",a) == 1) {
s = strlen(a);
flag = 1;
for(i = 0; i < s/2 && flag; i++)
if(a[i] != a[s - i - 1])
flag = 0;
if(flag) printf("%s:是.\n",a);
else printf("%s:不是.\n",a);
fflush(stdin);
}
return 0;
}

回答(2):

你的结构有问题,建议设定一个标记变量int j=1,0表示非回文,1表示回文,在for循环中一旦首尾不匹配就将j值改为0,break跳出,否则继续;循环结束后判断是否为0,j=0,不是回文,j=1,是回文