问题中要求用C语言输出一个三位数各个位上的数字。这里所谓的“个位十位百位”的概念是指这个数字的各个位在数学上所对应的位置,个位指的是这个数字的最右侧的一位,对应的权重值为1;十位指的是这个数字的倒数第二位,对应的权重值为10;百位指的是这个数字的倒数第三位,对应的权重值为100。

实现这个问题的方法有很多种,以下是其中两种具体的实现方式:

方法一:使用运算符和循环

通过分别使用“%”和“/”运算符来计算这个数字各个位上的数值,同时通过循环迭代将这个数字的各个位倒序输出。

示例代码:

#include <stdio.h>

int main() {
    int num = 123; // 想要输出各个位数字的原始数字
    int b, s, g; // 百位数、十位数和个位数

    b = num / 100;
    s = (num % 100) / 10;
    g = (num % 100) % 10;

    printf("个位:%d\n十位:%d\n百位:%d\n", g, s, b);

    return 0;
}

这个程序的输出结果为:

个位:3
十位:2
百位:1

方法二:使用数组和循环

将这个三位数字的各个位依次存储在一个长度为3的数组中,然后通过循环逐个输出数组中的元素。

示例代码:

#include <stdio.h>

int main() {
    int num = 123; // 想要输出各个位数字的原始数字
    int digits[3]; // 存储数字各个位数字的数组

    digits[0] = num / 100;
    digits[1] = (num % 100) / 10;
    digits[2] = (num % 100) % 10;

    printf("个位:%d\n十位:%d\n百位:%d\n", digits[2], digits[1], digits[0]);

    return 0;
}

这个程序的输出结果和之前的方法一样:

个位:3
十位:2
百位:1