2016-11-11 3 views
0

Kann jemand darauf hinweisen, was mit diesem Code falsch ist? Ich versuche, ein einfaches (ohne Verwendung von Arrays und so ähnlichem) Programm zu schreiben, das die Basis 10-Zahlen in irgendeine andere Basis umwandeln würde. Ich bin ein Anfänger, ich habe gerade angefangen, in C.Basiskonvertierung in Programmiersprache c

PS: Wie Sie sehen können, habe ich nichts geschrieben, das die Ergebnisse invertieren würde, und ich habe keine Ausgaben vom Compiler erhalten. Es hat aufgehört zu arbeiten.

main() 
{ 
    int a,b,c; 
    printf("Please enter a number in base 10: "); 
    scanf("%d",&a); 
    printf("\nPlease enter the base that you want the number to be converted to: "); 
    scanf("%d",&b); 
    do 
    { 
     c=a%b; 
     printf("%d",c); 
     a/=b; 
    }while(c!=0); 
} 
+0

Was werden Sie eingeben? Was hast du als Output bekommen? Wie kann man es ändern, um die Ziffern nicht in umgekehrter Reihenfolge auszugeben? Wann planen Sie zu überprüfen, ob die Eingaben funktionieren? Wann geben Sie einen Zeilenvorschub oder eine Leerstelle aus, um die Zahlen zu trennen? –

+0

Nun, ich habe keine Ausgaben erhalten, weil der Compiler nicht mehr funktioniert und yeah ich habe nichts geschrieben, was das Ergebnis umkehren würde. Das ist alles was ich tun könnte ... @ Jonathan Leffler –

+0

Ich habe '42' und' 8 eingegeben '(für oktal) in Ihr Programm und es antwortete' 250', obwohl Dezimal '42' Oktal' 52' ist. –

Antwort

1

Ändern Sie Ihre while-Schleife zu a! = 0. Sie möchten eine Schleife erstellen, bis Sie die Eingangsnummer auf Null reduziert haben. Ihr Code wird beendet, wenn die erste Ziffer 0 ist.

+0

Die nächste Herausforderung besteht darin, den konvertierten Wert korrekt zu schreiben. Alle Ziffern sind reserviert. –

+0

Irgendeine Idee, wie kann ich das Ergebnis umkehren? –