问题中要求用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