2016-10-18 185 views
-4

我是新来的编程,我在学校做运动。对于我下面的程序在那里我坚持:无法打印'1'?

#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输出应该是:

反向:

i=5 

i=4 

i=3 

i=2 

i=1 

但我的程序的输出:

反向:

i=5 

i=4 

i=3 

i=2 

但是当我输入没有“1”开始数,我的程序正常工作数量:

输入整数:23556

反向:

i=6 

i=5 

i=5 

i=3 

i=2 

那么什么用的问题以'1'开头的数字?任何人都可以给我这个建议吗?如果你能帮忙,我很高兴。

+7

尝试一段时间(N> 0)。它应该工作 –

+0

你为什么不尝试调试? – Abhineet

+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); 
} 

} 
2

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

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