回文正读倒都相同,如abcba,是对称的
我们可以用循环,比较其最前面和最后面的值是否相同,再比较次前和次后……
若值相同,就计数一次;若不相同,就不记数。回文由于前后对应值都相同,计数会占总个数的1/2。
通过比较计数个数是否占总个数的1/2,就能判断出是否是回文。
#include<stdio.h>
int main()
{
char str[80];
int i,count=0;
int t=0;
gets(str);//输入
for(i=0;str[i]!='\0';i++)//遇到字符串结束标志'\0'时停止计数
count++;//统计共有多少个字符
for(i=0;i<count/2;i++)//比较总字符数1/2次
{
if(str[i]==str[count-1-i])
t++;//若相同,就计数一次
}
if(i==t)//若累计计数达到字符串长度的一半,就是回文
printf("%s是回文\n",str);
else
printf("%s不是回文\n",str);
return 0;
}