问题描述:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
输入:输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串(每个字符串的长度不超过100)。
输出:
如果一个字符串是回文串,则输出"yes",否则输出"no".
哪里错了<(_ _)>
#include "stdio.h"
void main()
{
int n,i=0;
int j = 0;
int len = 0;
char str[100];
int flag = 0;
printf("请输入n");
scanf("%d",&n);
while(i<n){
fflush(stdin);
gets(str); //获取字符串
len = strlen(str);
flag = 0;
for(j=0;j<len/2;j++){
if(str[j]!=str[len-j-1]){
flag = 1;
break;
}
}
i++;
if(flag){
printf("%s不是回文\n",str);
}else{
printf("%s是回文\n",str);
}
}
}
while有问题,\n是不会读入a数组的。建议初始化a[100] = {0},然后while中判断a[j] != '\0'来判断结束,从而获得实际输入字符串长度
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m