我是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 : %dn", number , reminder);
}
return 0;
}
输出如下所示:
键入最多 4 位数字的数字:1234
编号 : 123 提醒 : 4
编号 : 12 提醒 : 3
编号 : 1 提醒 : 2
编号 : 0 提醒 : 1
我使用了其余部分,以便我可以分隔数字。我希望输出是这样的:
键入最多 4 位数字的数字:1234
单位 = 4
打 = 3
百 = 2
千 = 1
关于如何解决这个问题的任何建议?
只需进行一些调整,您就可以这样做。我使用了一个字符串数组digname[]
来描述每个数字值。我通过使用power
确保循环在number > 9999
时结束,这也为字符串数组编制索引。
#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: %dn", digname[power], remainder);
number = number / 10;
if (++power >= MAXPOWER)
break;
}
return 0;
}
示例程序输入了 4 位以上的数字:
Type a number with a maximum of 4 digits : 12345
Units: 5
Tens: 4
Hundreds: 3
Thousands: 2