给一个不多于5位数的正整数,文件名为sy4_6.c,用switch语句实现,要求: ①求出它是几位数; ②分别输出每一位数字; ③按照逆序输出各位数字,例如原输入数为54321,应输出12345。
时间: 2024-10-16 18:04:14 浏览: 49
在C语言中,你可以使用`scanf`函数读取用户输入的整数,并利用`switch`结构来实现题目所描述的功能。以下是`sy4_6.c`的一个简单示例:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
// 判断位数
switch (1) {
case 1:
if (num >= 0 && num <= 9) {
printf("这是一个一位数: %d\n", num);
} else if (num >= 10 && num <= 99) {
printf("这是一个两位数: ");
printf("%d\n", num % 10); // 输出个位
printf("%d\n", num / 10); // 输出十位
} else if (num >= 100 && num <= 999) {
printf("这是一个三位数: ");
printf("%d\n", num % 10); // 输出个位
printf("%d\n", num / 10 % 10); // 输出十位
printf("%d\n", num / 100); // 输出百位
} else if (num >= 1000 && num <= 9999) {
printf("这是一个四位数: ");
printf("%d\n", num % 10); // 输出个位
printf("%d\n", num / 10 % 10); // 输出十位
printf("%d\n", num / 100 % 10); // 输出百位
printf("%d\n", num / 1000); // 输出千位
} else {
printf("错误: 输入超过5位数.\n");
}
break;
default:
break;
}
// 逆序输出各位数字
int reversed = num;
while (reversed != 0) {
printf("%d", reversed % 10);
reversed /= 10;
}
printf("\n逆序输出: %d\n", reversed);
return 0;
}
```
阅读全文