在C中查找一个数字的回文
我用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
#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);
将被打印两次。谢谢。它成功了。