当我在写这个题目时我想到的步骤依次是
1-首先定义整数a来表示10到2000内的数
2-通过除号与取模号来取得a的各位上的数
#include<stdio.h>
int main()
{
int a = 10;
int b, i, n,c;
b = a%10; //取个位
i = a/10%10;//取十位
n = a/100%10;//取百位
c = a/1000;//取千位
for(a = 10; a<=99; a++)
{
if(b == i)
{
printf("%d ", a);
}
}
for(a = 100; a<=999; a++)
{
if(b == n)
printf("%d ", a);
}
for(a = 1000; a<=2000; a++)
{
if((b == c)&&(i == n))
{
printf("%d ", a );
}
}
return 0;
}
这是我开始根据想法得出的代码,但是通过编译运行后可以知道,这样写显然错误。
在我的初始化可以得出a = 10所以他的百位千位都是0,但是在for循环当中我并没有对a的个位,十位,百位,千位进行修改所以答案是错误的。
这个时候我们只要在第一个循环中放入个位与十位,第二的三的循环同理。这样我们就得到了10到2000的所有回文数。