给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字; ③按逆序输出各位数字,例如原数为321,应输出123。
时间: 2024-10-23 19:04:33 浏览: 16
你可以创建一个C语言函数来实现这个功能,下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于获取数字的位数
int getDigitCount(int num) {
int count = 0;
while (num != 0) {
num /= 10;
count++;
}
return count;
}
// 函数用于按顺序输出每一位数字
void printDigits(int num, int length) {
for (int i = 0; i < length; i++) {
printf("%d", num % 10);
num /= 10;
}
printf("\n");
}
// 函数用于逆序输出各位数字
void reversePrintDigits(int num, int length) {
int reversed = 0;
for (int i = 0; i < length; i++) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
printf("逆序: ");
printDigits(reversed, length);
}
int main() {
int num;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
// 检查输入是否合法
if (num <= 0 || getDigitCount(num) > 5) {
printf("输入错误! 数字超过5位。\n");
} else {
int digit_length = getDigitCount(num);
printf("该数有%d位: ", digit_length);
printDigits(num, digit_length);
printf("逆序: ");
reversePrintDigits(num, digit_length);
}
return 0;
}
```
在这个程序中,首先计算输入数字的位数,然后按照顺序和逆序的方式分别打印每一位数字。注意,用户输入的数值需要小于等于0的5次方,即10^5(100,000),才能保证结果的正确性。
阅读全文