我在C中写了一个代码,找到一个数字的回文,但我不明白为什么它不起作用。
#include <stdio.h>
int main(void){
int num = 0;
int revNum = 0;
int a;
for (int i = 0; i <= 99; ++i)
{
for (int j = 0; j <= 99; ++j)
{
num = (99-i)*(99-j);
int numToBeRev = num;
while(numToBeRev>0){
a = numToBeRev%10;
numToBeRev = numToBeRev/10;
revNum = revNum*10+a;
}
if(num == revNum)
{
printf("The value of num is %i\n",num );
printf("the reverse Number is %i\n",revNum);
break;
}
}
if(num == revNum)
{
printf("the reverse Number is %i\n",revNum);
break;
}
}
return 0;
}
关于观察的代码似乎很好,但我不明白为什么输出没有被打印出来。
答案 0 :(得分:2)
您忘记在每次迭代中重置revNum
。通过添加
revNum = 0;
之前
num = (99-i)*(99-j);
答案 1 :(得分:0)
每次迭代后将revNum设置为0,否则下次循环运行时会导致错误的结果。