整数数字之积与和:输入任意一个正整数(范围:100~1000000),如果该数的上每一位数字之积小于每一位数字之和,则输出数字1,否则输出数字0。基于c语言
时间: 2025-03-18 13:12:41 浏览: 37
### C语言实现每位数字乘积小于每位数字求和
以下是用C语言编写的程序,该程序能够接收用户输入的一个正整数,并计算其每一位数字的乘积以及每一位数字的和。随后比较这两个值,如果乘积小于和,则返回真;否则返回假。
```c
#include <stdio.h>
int main() {
long num;
int digit, product = 1, sum = 0;
printf("请输入一个正整数:\n");
scanf("%ld", &num);
if (num <= 0) {
printf("输入错误! 需要输入一个正整数。\n");
return 1;
}
while (num > 0) {
digit = num % 10; // 获取最后一位数字
product *= digit; // 计算乘积
sum += digit; // 计算和
num /= 10; // 去掉最后一位数字
}
if (product < sum) {
printf("各位数字的乘积(%d) 小于 各位数字的和(%d)\n", product, sum);
} else {
printf("各位数字的乘积(%d) 不小于 各位数字的和(%d)\n", product, sum);
}
return 0;
}
```
上述代码实现了对任意正整数的处理过程。其中 `digit` 变量存储当前正在分析的数字,而 `product` 和 `sum` 则分别记录所有数字相乘的结果与累加的结果[^1]。
#### 关键点解析
- **初始化变量**:为了确保初始状态正确无误,`product` 被设置为 1(因为任何数乘以 1 结果不变),而 `sum` 设置为 0。
- **循环提取数字**:利用取模操作 `%` 提取出最低位数字并逐步减少原数值直到变为零为止。
- **条件判断**:最终通过简单的 `<` 运算符完成两者之间的对比工作,并给出相应的提示信息。
### 注意事项
当遇到含有零的情况时需特别注意,由于存在某个因子为零会使得整个乘积也为零,因此即使其他部分满足要求也可能因这一特殊情况而导致整体不符合预期结果[^3]。
阅读全文
相关推荐

















