我在 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;
}
输出如下所示:
Type a number with a maximum of 4 digits: 1234
Number : 123 Reminder : 4
Number : 12 Reminder : 3
Number : 1 Reminder : 2
Number : 0 Reminder : 1
我使用了余数,以便可以分隔数字。 我希望输出是这样的:
Type a number with a maximum of 4 digits : 1234
Unit = 4
Dozen = 3
Hundred = 2
Thousand = 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: %d\n", 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
关于c - 给定一个4位数字,如何在屏幕上打印该数字的个位、十、百、千?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28773108/