从键盘输入一个不多于4位的正整数num,请使用f多分支语句编程实现以下功能: (1)求出它是几位数; (2)按干、百、十、个位顺序输出每一位数字。
时间: 2024-10-28 13:06:52 浏览: 28
要实现这个功能,你可以使用C语言中的`scanf`函数获取用户的输入,然后使用条件语句(if-else if-else)来确定数字的位数并打印每一位。这里是一个简单的程序示例:
```c
#include <stdio.h>
int main() {
int num, digit;
// 输入一个正整数
printf("请输入一个不超过4位的正整数: ");
scanf("%d", &num);
// 检查输入是否为正整数和位数不超过4
if (num <= 0) {
printf("输入错误! 数字必须是正整数。\n");
return 1; // 结束程序
} else if (num >= 1000) {
printf("输入错误! 数字不能超过四位。\n");
return 1; // 结果同上
}
// 计算位数
digit = floor(log10(num)) + 1;
// 输出每一位数字
for (int i = digit - 1; i >= 0; i--) {
int remainder = num % 10; // 取余数得到当前位
printf("第%.*f位是:%d\n", i == digit - 1 ? 1 : 0, num / pow(10, i), remainder);
num /= 10; // 移除当前位后准备处理下一位
}
return 0;
}
```
在这个程序中,我们首先检查输入的数字是否符合要求,然后利用对数函数`log10`计算出位数。接下来,通过循环逐位取出数字并打印。
阅读全文