Ich schreibe einen Code, um die Ziffern einer beliebigen positiven Ganzzahl in der Sprache C anzuzeigen. Zum Beispiel würde Integer 345 als drei vier fünf angezeigt werden.Drucken einer ganzen Zahl in Englisch
Der Code, den ich schrieb funktioniert gut für Ganzzahlen mit allen Ziffern größer als 0. Aber bestimmte Ganzzahlen wie 10, 304, 0 usw. werden nicht korrekt angezeigt. Die Verwendung von Rekursion und Array ist nicht erlaubt, um herauszufordern. Nur Schleifen und wenn Konstrukte erlaubt sind. Irgendwelche Vorschläge?
#include<stdio.h>
int main(void)
{
int num, num_copy, accum = 1;
printf("Enter an integer ");
scanf("%i",&num);
num_copy = num;
while (num > 0){
while (num > 9){
num = num/10;
accum *= 10;
}
switch (num){
case (1):
printf("one ");
break;
case (2):
printf("two ");
break;
case (3):
printf("three ");
break;
case (4):
printf("four ");
break;
case (5):
printf("five ");
break;
case (6):
printf("six ");
break;
case (7):
printf("seven ");
break;
case (8):
printf("eight ");
break;
case (9):
printf("nine ");
break;
}
num_copy = num_copy - (num*accum);
num = num_copy;
accum = 1;
}
return 0;
}
Sie nicht behandeln '0' –
Warum Klammer um Fall-Etiketten? Warum nicht um andere Konstanten? 'accum * = (10);' oder 'return (0);' – pmg
Versuchen Sie, den Code zeilenweise zu durchlaufen. Sie werden mehrere Probleme bemerken, wenn Sie das tun. –