在C中找到一个数字的回文

时间:2015-06-07 12:28:23

标签: c

我在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;
}

关于观察的代码似乎很好,但我不明白为什么输出没有被打印出来。

2 个答案:

答案 0 :(得分:2)

您忘记在每次迭代中重置revNum。通过添加

解决问题
revNum = 0;

之前

num = (99-i)*(99-j);

答案 1 :(得分:0)

每次迭代后将revNum设置为0,否则下次循环运行时会导致错误的结果。