给一个不多于 5 位的正整数,要求(1)求出它是几位数(2)分别输出每一位数字(3)按逆序输出各位数字,例如原数为 321,应输出 123
时间: 2024-10-10 16:13:54 浏览: 36
为了满足你的需求,你可以编写一个C程序来完成这个任务。这里有一个简单的示例:
```c
#include <stdio.h>
void printNumber(int num, int length) {
if (num == 0) {
printf("0 ");
} else {
printf("%d ", num % 10);
printNumber(num / 10, length - 1); // 递归调用,减少一位数
}
}
int main() {
int input;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &input);
// 检查输入是否超过5位
while (input >= pow(10, 5)) {
printf("输入错误,请重新输入一个不超过5位的正整数: ");
scanf("%d", &input);
}
int digits = floor(log10(input)) + 1; // 计算位数
printf("\n数字共有%d位:\n", digits);
// 输出每位数字
printf("每位数字依次为: ");
printNumber(input, digits);
// 逆序输出各位数字
printf("\n逆序输出的数字为: ");
for (int i = digits - 1; i >= 0; i--) {
printf("%d", input % 10);
input /= 10;
}
return 0;
}
```
在这个程序中,我们首先获取用户的输入,然后检查其是否符合要求。接着,我们使用`log10()`函数计算输入的位数,然后按照要求顺序打印每一位数字,并最后逆序输出。
运行这个程序后,根据输入的5位以内正整数,它将完成所有你需要的功能。
阅读全文