给定一个4位数字,如何在屏幕上打印单位,十几、十、十几千这个数字



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

最新更新