C言語で任意の正の整数の数字を表示するコードを書いています。たとえば、整数345は345として表示されます。
私が書いたコードは、すべての桁が0より大きい整数に対しては正常に機能します。ただし、10、304、0などの特定の整数は正しく表示されません。チャレンジのために再帰と配列を使用することは許可されていません。ループとif構文のみが許可されます。助言がありますか?
#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;
}