C语言 判断一个字符串是不是回文

#include<stdio.h>voidmain(){chara[100];inti=0,j=0;printf("Pleaseinputstring:");gets(a... #include <stdio.h>
void main()
{
char a[100];
int i=0,j=0;
printf("Please input string:");
gets(a);
while(a[i]!='\0')
i++;
i--;
for(;j<=i;i--,j++)
{
if(a[i]!=a[j])
break;
}
if(j<=i)
printf("%s is not a palindrome\n",a);
else
printf("%s is a palindrome\n",a);
}
这是老师给的答案,while和for循环是表示的是什么意思,没看懂。

这是我做的 有错误 我觉得用if(s[i]==s[m+1-i])比较容易理解(例如:madam m是i,最后一个m是m+1-i;第二个a是i,倒数第二个a是m+1-i)
#include<stdio.h>
#include<string.h>
void main()
{
char s[100];
int i,m;
printf("Please input s[100]:");
gets(s);
m=strlen(s);
for(i=0;i<m;i++)
{
if(s[i]==s[m+1-i])
printf("%c is palindrome\n",s[100]);
else
printf("%c is not palindrome\n",s[100]);
}
}
展开
 我来答
WaterSa_Ra
2012-06-19 · TA获得超过271个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:126万
展开全部
while是找到字符串的末尾,'\n'是所有字符串的最后一个字符,for循环是用来判断是不会回文的。j是从第一个字符开始,i是从最后一个字符开始,比较完一个字符后,j++,i--,一旦发现某个地方首位是不相等的,则不是回文退出
更多追问追答
追问
明白了 那我做的程序呢 那个if语句有错误么
追答
逻辑上是对的。但是你的输出肯定是不对的
伍礼冼清华
2019-03-18 · TA获得超过3636个赞
知道小有建树答主
回答量:3094
采纳率:28%
帮助的人:169万
展开全部
if(f
[a++]!=f
[b--])
就这么一条语句你就判断它是不是回文?
至少得来个循环吧。而且如果遇到相等还不能马上就说它是回文,还要把所有对应的字符判断完了才能说它是回文。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tseug8271
2012-06-19 · TA获得超过1497个赞
知道小有建树答主
回答量:745
采纳率:100%
帮助的人:356万
展开全部
你的思路没错,错在 回文 是 所有对应位置都匹配,有一个不匹配的就不是,改一下你的
if 语句就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
isaaccwoo
2012-06-19 · TA获得超过152个赞
知道小有建树答主
回答量:76
采纳率:0%
帮助的人:104万
展开全部
abcdefcba
请问,这是不是回文串,老师的程序输出什么,你的程序输出什么,差别在哪里,为什么会这样?
自己想好,比别人直接告诉你要深刻得多
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式