我真的是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


关于如何解决此问题的任何建议?

最佳答案

只需进行一些调整,您就可以做到这一点。我已经使用字符串数组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;
}


示例程序输入了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/

10-11 05:58
查看更多