//判断一个数是否为回文数
#include <stdio.h>
#include <assert.h>
int panduan(int *p)
{
<span style="white-space:pre"> </span>int t = 0;
<span style="white-space:pre"> </span>int n = *p;
<span style="white-space:pre"> </span>assert( *p != NULL );
<span style="white-space:pre"> </span>//每次取出最后一个数乘10加到前边去
<span style="white-space:pre"> </span>while( *p != NULL )
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>t = t * 10 + *p % 10;
<span style="white-space:pre"> </span>*p = *p / 10;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>// 是回文数就会相等
<span style="white-space:pre"> </span>if( t==n )
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>return 1;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>else
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>return 0;
<span style="white-space:pre"> </span>}
}
int main()
{
<span style="white-space:pre"> </span>int a;
<span style="white-space:pre"> </span>printf("请输入一个整数:\n");
<span style="white-space:pre"> </span>scanf("%d",&a);
<span style="white-space:pre"> </span>if( panduan(&a) )
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>printf("yes\n");
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>else
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>printf("no\n");
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return 0;
}
/*
#include <stdio.h>
int fun(int x)
{
int i,j=0;
int a[10];
for(i=0;x!=0;i++) //把整形转到数组中
{
a[i]=x%10;
x=x/10;
j++;
}
for(i=0;i<j;i++) //输出看转的是否正确
{
printf("%d ",a[i]);
}
for(i=0;i<j;i++) //数组首位循环计较
{
if(a[i]==a[j-1])
{
j--;
}
else
return -1;
}
return 1;
}
int main()
{
int m=123454321;
printf("\n%d\n",fun(m));
return 0;
}
*/