我是C的新人,我正在做一个练习,我应该打印单位,十几,十万。 (例如:1234 =>单位= 4;十二= 3;百= 2;千= 1。)
这就是我想出的:
int main ()
{
int number , reminder , unit , dozen , hundred , thousand;
printf ("Type a number with a maximum of 4 digits : ");
scanf ("%d" , &number);
while (number)
{ reminder = number%10;
number = number/10;
printf ("Number : %d Reminder : %d\n", number , reminder);
}
return 0;
}
输出如下:
输入最多4位数的数字:1234
号码:123提醒:4
数量:12提醒:3
号码:1提醒:2
数字:0提醒:1
我使用了剩余部分,以便我可以分开数字。 我希望输出像这样:
输入最多4位数的数字:1234
单位= 4
打= 3
百= 2
千= 1
有关如何解决此问题的任何建议已解决?
答案 0 :(得分:-2)
只需进行一些调整就可以做到这一点。我使用字符串数组digname[]
来描述每个数字值。我确保循环在number > 9999
时通过使用power
来结束,#include <stdio.h>
#define MAXPOWER 4
int main ()
{
char *digname[MAXPOWER] = {"Units", "Tens", "Hundreds", "Thousands"};
int number = 0, remainder, power = 0;
printf ("Type a number with a maximum of 4 digits : ");
scanf ("%d" , &number);
while (number) {
remainder = number % 10;
printf ("%s: %d\n", digname[power], remainder);
number = number / 10;
if (++power >= MAXPOWER)
break;
}
return 0;
}
也会对字符串数组建立索引。
Type a number with a maximum of 4 digits : 12345
Units: 5
Tens: 4
Hundreds: 3
Thousands: 2
示例程序输入的数字超过4位数:
{{1}}