C语言给一个不多于5位的正整数,要求: 1:求出它是几位数; 2:分别输出每一位数字; 3:按逆序输出各位数字,例如原数为321,应输出123.
时间: 2024-11-04 19:11:13 浏览: 118
100个经典例题(C语言).doc
在C语言中,你可以通过以下几个步骤实现这个功能:
1. **判断位数**:
使用`<stdio.h>`库中的`scanf`函数读取输入的正整数,并利用`%d`格式说明符获取数值。然后用`int`类型的变量除以10的幂次(如10^0、10^1、10^2等),直到商变为0。在这个过程中,计数器会自动递增,表示当前数字是在第几位上。当计数器达到5时,跳出循环。
```c
#include <stdio.h>
int main() {
int num, digit_count = 0, remainder;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
while (num > 0) {
remainder = num % 10; // 取余得到最后一位
printf("%d ", remainder); // 输出每一位
num /= 10; // 移除最低位
digit_count++; // 计数器加一
if (digit_count > 5) break; // 判断是否超过5位
}
return 0;
}
```
2. **逆序输出**:
如果你想按照从高位到低位的顺序打印数字,只需稍微调整一下顺序即可。先将结果存储在一个数组或临时变量中,然后再遍历输出。
```c
// 在上述循环结束后,创建一个新的数组存储逆序的数字
int reversed[6] = {0};
for (int i = digit_count - 1; i >= 0; i--) {
reversed[i] = remainder;
}
// 然后逐个打印逆序的数字
printf("\n逆序输出: ");
for (int i = 0; i < digit_count && reversed[i]; i++) {
printf("%d", reversed[i]);
}
return 0;
}
```
阅读全文