我想写一个程序,其中用户在程序中输入一个整数,然后C按顺序返回该整数的每个数字。为了实现这一点,我试图将输入的整数除以10的因子并循环,直到我最终达到最后一位。不幸的是,我的循环存在问题。 2位数字工作正常,但3位或更多,我进入一个无限循环。任何人有什么建议我要去哪里错了?WHILE循环中IF语句的问题
int main()
{
int Num;
int a;
int count=0;
printf("Enter an integer > ");
scanf("%d", &Num);
printf("**Digits Forward!**\n");
if (Num<10) {
printf("Final digit: %d\n",Num);
printf("**Digits Reverse!**\n");
printf("Final digit: %d\n",Num);
printf("That's all, have a nice day!\n");
} ///No Problems So far.
else {
while (Num>=10) {
a=Num/10;
count=count+1;
if (a<10) {
printf("Digit: %d\n", a);
Num = Num-pow(10,count)*a;
count=0;
}
}
} ///Having trouble in this loop. Why doesn't it loop using the new Num and count values?
printf("Final digit: %d\n",Num);
return 0;
}
我不惊讶,你不能自己调试这段代码。这根本不可读。 – 2013-05-01 00:52:50
我必须诚实地同意我甚至不确定你在那里做什么。 – Nomad101 2013-05-01 00:54:31
请通过适当缩进并添加注释来清理代码。阅读未注释的,无意义的代码非常困难。 – templatetypedef 2013-05-01 01:01:30