回文串(字符数组)。。。。

问题描述:“回文串”是一个正读和反读都一样的字符串,比如“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