首先我们思考怎么编写这个程序,这一种想法是给这个数逆序计算出来,和原本的数比较是否相等。另外就是利用数组,给每个数存进去,然后逆序放进另外一个数组,再利用和for循环和if进行条件判断。这里我选择的是第二种方法。
#include<stdio.h>
int judge(int x)
{
int a[8],b[8];
int i,k;
for(i=0;x!=0;i++)
{
a[i]=x%10;
if(a[0]==0) // 如果末尾是0,那么肯定不是回文数,直接结束
return 0;
x=x/10;
}
i--; // 最后一次循环i多加了1。比如说,x=12,那么i=3,因为数组是从0开始的,所以i--
for(k=0;k<=i;k++)
b[k]=a[i-k]; //倒序储存
for(k=0;k<=i;k++)
if(b[k]!=a[k]) //判断,如果循环没结束,就break,那么k<=i是肯定的,也就不是回文数
break; //如果循环结束,k=i+1,所以 return 1;
if(k>i)
return 1;
else
return 0;
}
int main()
{
int n;
scanf("%d",&n);
judge(n);
if(judge(n))
printf("是");
else
printf("否");
}
希望对您有帮助!!!
发现错误希望您指出,这对大一新生是一种莫大的帮助!

1万+

被折叠的 条评论
为什么被折叠?



