C语言输入一个不大于4位数的正整数,判断它是几位数,然后输出各位之积。
时间: 2024-11-27 11:24:32 浏览: 4
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,创建一个循环来获取用户的输入,并检查它是否是一个不超过四位的正整数。可以使用`scanf()`函数读取用户输入,并用条件语句`if`判断输入的有效性。
```c
int num;
printf("请输入一个小于4位的正整数:");
scanf("%d", &num);
while (num < 0 || num >= 10000) {
printf("输入错误,请重新输入一个1到9999之间的正整数:");
scanf("%d", &num);
}
```
2. 接着,计算数字的位数。可以借助除法和取余运算来确定。例如,对数字进行除以10并取余操作,直到商为0,此时余数就是最后一位的值,次数减一即为位数。
```c
int digits = 0;
while (num > 0) {
digits++;
num /= 10;
}
```
3. 最后,遍历每一位并计算它们的乘积。这里需要从右向左(从最低位开始),每次将当前位相乘并累加到总积上。
```c
int product = 1;
for (int i = digits - 1; i >= 0; i--) {
int digit = num % 10; // 取出每一位
product *= digit;
num /= 10; // 移除最低位
}
printf("各位数字之积为:%d\n", product);
```
完整的代码示例:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个小于4位的正整数:");
scanf("%d", &num);
while (num < 0 || num >= 10000) {
printf("输入错误,请重新输入一个1到9999之间的正整数:");
scanf("%d", &num);
}
int digits = 0;
while (num > 0) {
digits++;
num /= 10;
}
int product = 1;
for (int i = digits - 1; i >= 0; i--) {
int digit = num % 10;
product *= digit;
num /= 10;
}
printf("各位数字之积为:%d\n", product);
return 0;
}
```
阅读全文