要求
编写程序,从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”、“abcdedcba”)
代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[30]={'\0'};
int i,p=0;
gets(a);
for(i=0;i<30;i++)
{
if(a[i]!='\0')
p++;
else
break;
}
int q=0,w=p-1;
if(p%2==0)
{
for(q=0;q<(p/2);q++)
{
if(a[q]==a[w])
{
w--;
if(q==(p/2)-1)
{
printf("该字符串是回文");
break;
}
}
else
{
printf("该字符串不是回文");
break;
}
}
}
else
{
for(q=0;q<((p-1)/2);q++)
{
if(a[q]==a[w])
{
w--;
if((q==(p-1)/2)-1)
{
printf("该字符串是回文");
break;
}
}
else
{
printf("该字符串不是回文");
break;
}
}
}
return 0;
}
测试
测试输入:
12321
输出
该字符串是回文