无法打印' 1'?

时间:2016-10-18 11:51:04

标签: c

我是编程新手,我在学校做运动。对于我被困的下一个程序:

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main() {
 int n;
printf("Input the integer number:");
scanf("%d",&n);
int usevar=n;
int count=0;
while(n>1)
{
    n/=10;
    count++;
}
 int sum=0;
 printf("Reverse:\n");
for(int i=1;i<=count;i++)
{
    int a=pow(10,i);
    int b=pow(10,i-1);
    sum=(usevar%a-usevar%b)/b;
    printf("i=%d\n",sum);
}
  return 0;
}

当我插入一些诸如12345之类的int号时,输出应为:

反向:

i=5

i=4

i=3

i=2

i=1

但是我的程序输出是:

反向:

i=5

i=4

i=3

i=2

但是当我输入数字时没有&#39; 1&#39;作为起始编号,我的程序正常工作:

输入整数:23556

反向:

i=6

i=5

i=5

i=3

i=2

那么以&#39; 1&#39;开头的号码的问题是什么?任何人都可以给我这个建议吗?如果你能提供帮助,我很高兴。

2 个答案:

答案 0 :(得分:2)

这来自你的第一个循环。尝试:

while(n >= 1)
{
    n/=10;
    count++;
}

答案 1 :(得分:0)

试试这个,

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main() {

int n;
printf("Input the integer number:");
scanf("%d",&n);

while(n > 0){
    int rev = n%10;
    n = n/10;
    printf("i = %d\n",rev);
}

}