6.3 单元实训 【实训Y 求一个正整数的位数并逆序输出各位数字 给定一个5位(含)以下的正整数,求出它是几位数并逆序输出各位数字。 实训分析:建立一个能够存放5个数字的数组,将输人数字的每位数的值赋
时间: 2024-11-29 07:35:17 浏览: 10
实训 Y 要求是编写一段程序,输入一个5位及以下的正整数,首先计算这个数字的位数,然后将其每一位数字按逆序的方式输出。这个过程可以分为以下几个步骤:
1. **输入处理**:接收用户的输入,通常通过`scanf`或`cin`函数获取。
2. **判断位数**:通过除法和取余操作(如 `num / 10` 取余1),依次检查每一位数字直到商为0,记录下过程中进行了多少次除法即可得到位数。
3. **创建数组**:声明一个大小等于位数的数组用于存储每一位数字。
4. **提取每位数字**:从高位到低位,每次取模10(`num % 10`)并将结果存入数组。
5. **逆序输出**:遍历数组,但起点从最后一个元素开始向前,逐个输出数组中的数字。
```c
#include <stdio.h>
int main() {
int num, digitCount = 0;
printf("请输入一个5位及以下的正整数:");
scanf("%d", &num);
while (num > 0) {
digitCount++;
num /= 10;
}
// 创建一个大小为digitCount的数组
int digits[digitCount];
// 逆序填充数组
for (int i = digitCount - 1; i >= 0; i--) {
digits[i] = num % 10;
num /= 10;
}
// 输出逆序的各位数字
printf("逆序后的数字依次为:");
for (int j = 0; j < digitCount; j++) {
printf("%d", digits[j]);
}
printf("\n");
return 0;
}
阅读全文