输入一个字符串 判断其是否为回文串 下面的这个小算法有错误吗? 如果直接用字符串算法该怎么写?

#include<stdio.h>#include<string.h>intmain(){inti,n,i0,y,s;chara[21];scanf("%d",&s);f... #include<stdio.h>
#include<string.h>
int main()
{
int i,n,i0,y,s;
char a[21];
scanf("%d",&s);
fflush(stdin);
while(s!=0)
{
s--;
y=0;
gets(a);
i=strlen(a);
i0=i/2;
for(n=0;n<=i0;n++)
{
if(a[n]!=a[i-1-n])
y++;
}
if(y==0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
展开
 我来答
做而论道
高能答主

2012-11-06 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
我以前回答过这样的问题,摘抄如下:

看到了一个题目,其中有个词汇:“回数”,后面的说明是:就是正读反读都一样。
那么如:qwertrewq,就是回数,qwertyu,就不是回数。
为此题目,编写C程序如下:
//===============================================
最佳答案:
#include"stdio.h"
void main(void)
{
unsigned char l = 0, i, j, temp1[200];
printf("\n\n\n Please Input wenzi chuan: ");
scanf("%s", temp1); //输入到TEMP1
while(temp1[l] != '\0') l++; //测出字符串长度.
j = l / 2; //半个字串长度
for (i = 0; i <= j; i++)
if (temp1[i] != temp1[l - 1 - i])
break;
if (i == (j + 1)) printf("y");
else printf("n");
}
//------------------------
//上述程序,编译后运行,最多可以输入200个字符,回车键结束,程序会自动输出
y、n。
//===============================================
回答时间:2011-4-13 09:12
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式