用c语言给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为98423,应输出32489。
时间: 2024-10-26 21:02:46 浏览: 164
在 C 语言中,我们可以使用循环结构和取模运算来实现这个功能。以下是解决这个问题的一个简单程序:
```c
#include <stdio.h>
// 函数声明
void printNumber(int num);
void reversePrint(int num);
int main() {
int input;
printf("请输入一个不超过5位的正整数:");
scanf("%d", &input);
// 检查输入是否合法
if (input <= 0 || input >= pow(10, 5)) {
printf("输入错误,数字应在1到99999之间。\n");
return 1;
}
// 计算数字位数
int digits = 0;
while (input != 0) {
digits++;
input /= 10;
}
printf("这是一个%d位数\n", digits);
// 输出每位数字
printNumber(input);
// 逆序输出各位数字
reversePrint(input);
return 0;
}
// 打印每一位数字
void printNumber(int num) {
while (num > 0) {
int digit = num % 10;
printf("%d", digit);
num /= 10;
}
printf("\n");
}
// 逆序打印每一位数字
void reversePrint(int num) {
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
printf("逆序输出为:%d\n", reversed);
}
阅读全文