输入一个字符串,判断是否为回文

从键盘输入一个字符串,判断是否为回文(即对称),例如:输入1234567654321,输出“YES" ;输入123456,输出”NO"#include<stdio.h>
void main()
{
char a[20];
int i,j,d;
gets(a);
d=strlen(a);
for(i=0;i<d;i++)
{for(j=d;j>0;j--)<br>if(a[i]==a[j])<br> printf("Yes"); break;<br>if(a[i]!=a[j])<br> printf("No"); break;<br>}
}有yes的输出。没有no的。

第1个回答  2013-12-14
#include<stdio.h>#include<string.h>void main(){char str[100];int i,k;gets(str);int len=strlen(str);i=len-1;for(k=0;k<len/2;k++){if(str[k]!=str[i]) break; i--;}if(k==i) printf("该数是回文数.\n",str[20]); else printf("该数不是回文数.\n",str[20]);}
第2个回答  2008-11-21
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
int i;
int bIsSame = 1;//是否相同的标志
int a=0,b;
char f [255];

scanf("%s",f); //读入字符串
b = strlen(f)-1; //获得最后一个字符的序号(字符串总长度减1)

for(i=0;i<b/2;i++) //循环,从0到字符串中间的字符
{
if(f[a++]!=f[b--]) //首尾比较是否相同字符
{
bIsSame = 0; //有不同的就把标志置0,并跳出循环
break;
}
}

if(bIsSame) //相同就输出Y
printf ("Y");
else //不同就输出N
printf ("N");

getchar();//按任意键退出

}
第3个回答  2017-10-10
#include<stdio.h>
#include<string.h>
#define MAX 1000
int main()
{
char str[MAX];
int i = 0;
int len;
scanf("%s",str);
len = strlen(str);
for(i=0;i<len/2+1;++i)
    if(*(str+i) != *(str+len - i -1))
        break;
if(i==len/2+1)
    printf("YES");
else
    printf("NO");
return 0;
}

第4个回答  2008-11-21
while(a!=0)
{
b=b*10+a%10;
a=a/10;
}
a是需要判断的数字,b是倒置后数字;
如果a==b那么就满足是回文了。
第5个回答  2013-12-14
if(a[i]==a[j]){
printf("Yes"); break;}
if(a[i]!=a[j]){
printf("No"); break;}没加大括号
相似回答