我正在写一个代码来显示C语言中任何正整数的数字。 例如,整数345将显示为三四五。打印英文中的一个整数
我写的代码适用于所有数字大于0的整数。但某些整数如10,304,0等不能正确显示。为了应对挑战,不允许使用递归和数组。只有循环和如果构造是允许的。 有什么建议吗?
#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;
}
你不处理'0' –
为什么各地情况标签括号?为什么不围绕其他常量? 'accum * =(10);'或'return(0);' – pmg
尝试逐行逐行扫描代码。当你这样做时,你会注意到几个问题。 –