用C语言解决问题:从键盘输入不多于5位的正整数,求出他是几位数,分别输出每一位数字,并按逆序输出各位数字
时间: 2024-12-24 13:39:21 浏览: 0
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,创建一个循环让用户输入正整数,直到输入的数值小于5位为止。
2. 接着,将输入的字符串转换成整数,以便获取其长度,即位数。
3. 使用数组或栈存储每一位数字,并在读取过程中进行逆序记录。
4. 分别输出每一位数字。
下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_DIGITS 6 // 可能的最大位数
int main() {
char input[MAX_DIGITS];
int num, digit;
int digits[MAX_DIGITS] = {0}; // 存储每一位的数组
int i = 0;
printf("请输入不超过5位的正整数: ");
fgets(input, sizeof(input), stdin); // 读取用户的输入,包括空格
// 移除末尾的换行符
input[strcspn(input, "\n")] = '\0';
// 将输入转换为整数并获取位数
num = atoi(input);
if (num > 0 && strlen(input) <= MAX_DIGITS) {
for (; num != 0; num /= 10) {
digits[i++] = num % 10;
}
// 输出逆序的每位数字
for (i = MAX_DIGITS - 1; i >= 0; i--) {
printf("%d", digits[i]);
}
} else {
printf("输入错误! 请输入不超过5位的正整数.\n");
}
return 0;
}
```
阅读全文