用c语言写给一个不多于5位的正整数,要求: 求出它是几位数; 分别输出每一位数字; 按逆序输出各位数字,例如原数为321,应输出123。
时间: 2024-10-20 09:06:34 浏览: 32
在C语言中,我们可以利用循环结构和取余运算符`%`来解决这个问题。首先,我们判断输入的整数是否有5位,然后逐位输出并逆序输出每一位。以下是实现这个功能的示例代码:
```c
#include <stdio.h>
// 函数声明
void print_digits(int num);
void reverse_print(int num);
int main() {
int num;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
// 检查输入的整数是否合法
if (num <= 0 || num >= 10000) {
printf("错误: 输入的数超过5位!\n");
return 1;
}
printf("该数有%d位数。\n", int(log10(num) + 1));
// 输出每一位数字
print_digits(num);
printf("\n");
// 逆序输出各位数字
reverse_print(num);
return 0;
}
// 打印数字函数
void print_digits(int num) {
while (num != 0) {
printf("%d", num % 10);
num /= 10; // 移除最低位
}
printf("\n");
}
// 逆序打印数字函数
void reverse_print(int num) {
for (int i = int(log10(num)); i >= 0; i--) {
printf("%d", num / pow(10, i) % 10);
}
printf("\n");
}
阅读全文