c语言判断是否为回文
发布网友
发布时间:2022-04-25 13:01
我来回答
共3个回答
热心网友
时间:2024-07-12 23:06
首先清楚什么是回文。。。我们称正读和反读都相同的字符序列为“回文”,如“abba”、“abccba”、12321、123321是“回文”。
然后再看程序,把长度为n的字符串的每一个字符排下标,即从0到n-1,要判断是否回文,就是把一串字母进行前后比对,即下标0的字符和下标为n-1的字符,1与n-2,2与n-3。。。
for
(i
=
0;
i
<
len
/
2;
i++)
{
if
(str[i]
!=
str[len-1-i])
{
break;
{{{{这里是什么意思啊}}}}}}
//
这里是判断不符号回文的情况,只要两个字符不符合,那这整个字符串就不是,所以break跳出循环判断
}
}
if
(i
==
len
/
2)
{{{{我不懂这里是什么意思}}}}}}
//
长度为n的字符串最多只能比对len
/
2次,那么如果每对都符合,那就是回文啦
{
printf(“%s
shi
hui
wen.\n“,
str);
}
热心网友
时间:2024-07-12 23:07
你提问的第一个地方,比如你输入了个5个字符的字符串
,abcba
先判断第一个和最后一个是否相同
,再判断第二个和倒数第二个
,一次类推
,如果相等程序正常执行
,如果不相等
,break就跳出循环
,
你提问的第二个地方就是i
如果等于
len/2说明
上边循环式正常退出
,那就是说前后一一对比都相同
,是回文数
,不等于len/2说明是由break退出导致,既前边和后边某一位不相同
热心网友
时间:2024-07-12 23:07
若输入
abbc
i=0
str[0]='a'
str[4-1-0]='c'
执行break;跳出for循环循环结束
i=0
所以判断不是回文
若输入abba
i=0
str[0]='a'
str[4-1-0]='a'
i=1
str[1]='b'
str[4-1-1]='b'
i=2
for循环条件不满足i
评论
0
0
加载更多