c - 给定一个4位数字,如何在屏幕上打印该数字的个位、十、百、千?

标签 c

我在 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/

相关文章:

混淆 Arduino 输出与基本代码

c++ - 分配期间意外类型转换

c - 从文件中读取行不返回全部

c++ - Arduino云桥: simple command failing

c - 高速公路标志和桥梁检测

C: 函数返回地址(mac)

c - C 中的 printf() 函数评估前后递减

c - 如何取消引用二维整数数组?

c - 如何以编程方式创建图像

c - 在 POSIX 中以微秒粒度调度事件