我想弄清楚这段代码有什么问题,它应该打印所有从1到100,000的回文数字(我知道它有很多数字)。我是新来的,我认为这可能是一个简单的修复,但我无法弄清楚,谢谢。C++中所有从1到100,000的回文数字
当我运行该程序时,它只是给出:“100000不是回文.............................. .................................................. ......................“
(它应该打印的数字如:111,121,131,141 .....直到100000)
#include<stdio.h>
#include<conio.h>
int main()
{
int n=0, reverse = 0, temp=0, i=0;
n=100000;
for(i=1; i<n; i++)
{
temp = i;
while(temp != 0)
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp/10;
}
if(i == reverse)
printf("%d", n);
else
printf(".");
}
getch();
return 0;
}
这将是尝试在调试器中逐步浏览代码以查看实际情况的好时机(提示:代码中至少有一个相当明显的错误 - 如果您已经看不到它,那么它应该成为当你进入while循环时显而易见)。 –
您可能必须使用字符串来正确地转换数字:http://stackoverflow.com/questions/4166886/reverse-of-a-number – andre