2016-10-18 5 views
-4

Ich bin neu im Programmieren und habe eine Übung in der Schule gemacht. Für mein folgendes Programm, wo ich steckte:Kann '1' nicht gedruckt werden?

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

Wenn ich etwas int Nummer wie 12345 eingefügt sollte die Ausgabe sein: Rückwärts

:

i=5 

i=4 

i=3 

i=2 

i=1 

Aber die Ausgabe meines Programms ist :

Rückseite:

i=5 

i=4 

i=3 

i=2 

Aber wenn ich die Nummer einzugeben, ohne '1' als Startnummer, mein Programm funktioniert einwandfrei:

Eingabe der Integer-Zahl: 23556

Rückseite:

i=6 

i=5 

i=5 

i=3 

i=2 

Also, was ist das Problem mit die Nummer, die mit '1' beginnt? Kann mir jemand den Vorschlag geben? Ich bin froh, wenn du helfen kannst.

+7

try while (n> 0). Es sollte funktionieren –

+0

Warum versuchst du nicht zu debuggen? – Abhineet

+1

Haben Sie selbst das grundlegende Debugging versucht? –

Antwort

0

dies versuchen,

#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

Dies kommt von Ihrer ersten Schleife. Versuchen:

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