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

在C中查找一个数字的回文,c,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 = nu

我用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;
}
#包括
内部主(空){
int num=0;
int revNum=0;
INTA;

对于(int i=0;i您忘记在每次迭代中重置
revNum
。通过添加

revNum = 0;
就在之前

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

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

预期输出和您得到的输出是什么?我希望看到printf语句,但什么也没有得到。好像这里没有回文数字,但这肯定不是真的。有什么原因不能调试吗这是以通常的方式进行的,例如使用调试器或通过添加策略性的
printf
s?您忘记了重置
revNum
。添加
revNum=0;
就在
num=(99-i)*(99-j);
之前。请注意
printf(“反向数字是%i\n”,revNum);
将被打印两次。谢谢。它成功了。