/* 从键盘上输入任意的正整数,编程判断该数是否为回文数。 所谓的回文数就是从左到右读这个数与从右到左读这个数是一样的。 例如,12321 , 4004都是回文数。 */ #include<stdio.h> #define N 10 void main() { int n,x,m,i,k,j; int a[N]; printf("Input x = "); scanf("%d",&x); m=x; //把输入值的各个数字存入到数组上 for(i=0;i<N,m!=0;i++) { //取余取最低位 n = m%10; a[i] = n; //通过除法舍弃最低位 m /=10; } //判断是否为回文 for(j=0,k=i-1;j<k;j++,k--) { if(a[j]==a[k]) continue; else break; } if(j>=k) printf("\t%d是回文! ",x); else printf("\t%d不是回文! ",x); } //课本上的解法 #include<stdio.h> void main() { int n,m =0,s,r; printf("Input data is: "); scanf("%d",&n); s = n; while(s != 0) { r = s %10; //从低位到高位逐一分离 m = 10*m+r; //重新组合一整数 s = s/10; //求其商 } if(m==n) printf("yes\n"); else printf("no\n"); }