给一个不多于五位的正整数,求出它是几位数,分别输出每一位数字,按逆序输出各位数字,c语言
时间: 2024-11-09 08:17:26 浏览: 21
python 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字 (示例)
5星 · 资源好评率100%
在C语言中,你可以通过以下步骤来实现这个功能:
1. **输入验证和获取位数**:
首先,你需要从用户那里获取一个正整数。可以使用`scanf`函数,并检查输入是否为5位以内。如果超过,提示用户输入正确的数值。
```c
int num;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
if (num < 0 || num >= 10000) {
printf("错误: 输入的数值应小于10000.\n");
return 1; // 或者处理其他错误情况
}
```
2. **计算位数并输出**:
使用`log10`函数来确定数字的位数,然后通过除法和取余操作获取每一位数字。最后,遍历每一位,逆序打印出来。
```c
int digits[6]; // 用于存储每一位
int i = 0;
while (num > 0) {
digits[i] = num % 10;
num /= 10;
++i;
}
// 输出逆序的每一位
for (int j = i - 1; j >= 0; --j) {
printf("%d", digits[j]);
}
```
完整代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
if (num < 0 || num >= 10000) {
printf("错误: 输入的数值应小于10000.\n");
return 1;
}
int digits[6];
int i = 0;
while (num > 0) {
digits[i] = num % 10;
num /= 10;
++i;
}
for (int j = i - 1; j >= 0; --j) {
printf("%d", digits[j]);
}
printf("\n每位数字按逆序输出: ");
for (int k = i - 1; k >= 0; --k) {
printf("%d", digits[k]);
}
return 0;
}
```
阅读全文