C语言编程输出80000到90000之间所有的回文数

2024-12-21 11:50:55
推荐回答(2个)
回答1:

#include

main()

{long x,y,z,n=0;

 for(x=80000;x<90001;x++)

 {y=x; z=0;

  for(;y>0;y/=10)

    z=z*10+y%10;

  if(z==x)

  {printf("%6ld",x);

   if(++n%10==0)printf("\n");

  }

 }

 printf("\n");

}

回答2:

#include
#include

int _tmain(int argc, _TCHAR* argv[])
{
int a[5], z, i, flag = 1;
long x; z = 1;
for (x = 80000; x<90001; x++)
{
long b = x; //作为循环变量,以下就不应该随便改变值了
for (i = 0; i<5; i++)
{
//你这里不符合逻辑地修改了循环变量的值,导致死循环
//a[i] = x % 10;
//x = x / 10;
a[i] = b % 10;
b = b / 10;
}
flag = 1; //每次循环必须重新赋值
for (i = 0; i<2; i++)
{
//if (a[1] != a[4]) //判断错误
if (a[i] != a[4 - i])
{
flag = 0; break;
}
}
if (flag == 1)
{
//if (z % 10 == 0) //第一行为 9 个,修改如下
if (z > 1 && z % 10 == 0)
{
printf("\n");
//printf("%ld ", x);
//z++;
}
printf("%ld ", x);
z++;
}
}
system("pause"); //防止窗口一闪而退
return 0;
}