if(n>10 &&n<100 &&n%10==n/10 || n>99 &&n<1000 &&n%10==n/100)
return 1
else return 0
}
这个就可以了。
#include <stdio.h>#include <string.h>
#include <ctype.h>
int ispalindrome(char *str) {
int s=0,e=strlen(str)-1,m=(s+e)/2
while(s<=m&&str[s]==str[e])
{
s++
e--
}
if(s>m)
return 1
return 0
}
int main(void) {
char buffer[1024]
gets(buffer)
printf("[%s] is ", buffer)
if (ispalindrome(buffer)) puts("a palindrome")
else puts("not a palindrome")
return 0
}
求回文数的程序:回文数是从右向左读和从左向右读都是一样的。比如15651,1221等。这个程序是验证用户输入的一个四位数是不是回文数。但是程序好像有错误:
举个例子:用户输入5885。先分离数字,a,b,c,d分别等于5,8,8,5。然后判断a是否等于d且b是否等于c。如果条件满足则是回文数,否则不是。