给一个不多于5位的正整数,用 switch 编程完成以下任务,要求: ①求出它是几位数;②分别输出每一位数字; ③按逆序输出各位数字,例如原数为321,应输出123。
时间: 2023-05-17 07:06:12 浏览: 157
好的,我可以回答这个问题。以下是使用 switch 语句编写的代码:
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
switch(num / 10000) {
case 1:
printf("5位数\n");
digit = num / 10000;
printf("%d ", digit);
count++;
default:
break;
}
switch(num / 1000 % 10) {
case 1:
printf("4位数\n");
digit = num / 1000 % 10;
printf("%d ", digit);
count++;
default:
break;
}
switch(num / 100 % 10) {
case 1:
printf("3位数\n");
digit = num / 100 % 10;
printf("%d ", digit);
count++;
default:
break;
}
switch(num / 10 % 10) {
case 1:
printf("2位数\n");
digit = num / 10 % 10;
printf("%d ", digit);
count++;
default:
break;
}
switch(num % 10) {
case 1:
printf("1位数\n");
digit = num % 10;
printf("%d ", digit);
count++;
default:
break;
}
printf("\n逆序输出:");
while(num > 0) {
digit = num % 10;
printf("%d", digit);
num /= 10;
}
return 0;
}
注意,这个程序只能处理不多于5位的正整数。如果输入的数超过了5位,程序可能会出现错误。
阅读全文