2016-10-18 14 views
-4

私はプログラミングが初めてで、私は学校で運動をしていました。私は立ち往生しています私の次のプログラムについて:'1'を印刷できませんか?

リバース::私は出力があるべきな12345としていくつかのint型の番号を挿入

#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; 
} 

i=5 

i=4 

i=3 

i=2 

i=1 

しかし、私のプログラムの出力があります:

リバース:

i=5 

i=4 

i=3 

i=2 

しかし、開始番号として '1' をせずにI入力数、私のプログラムが正常に動作します:

入力整数:23556

リバース:

i=6 

i=5 

i=5 

i=3 

i=2 

だから、との問題は何でしょう1から始まる番号?誰も私に提案を与えることができますか?助けることができれば嬉しいです。

+7

試してこれを試してみてください。それは動作するはずです –

+0

デバッグを試してみませんか? – Abhineet

+1

基本的なデバッグを試しましたか? –

答えて

0

(N> 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++; 
} 
関連する問題