输入一个正整数,求它的位数以及各位数字之和。例如,123的位数是3,各位数字之和是6。 提示:同范例3基本思路一致,只是在循环体中增加了计位数与各位数字累加的工作。c语言利用while语句
时间: 2025-03-29 20:08:39 浏览: 40
### C语言实现计算正整数的位数及各位数字之和
以下是基于提供的引用内容以及标准C语言语法编写的代码示例,用于计算一个正整数的位数及其各位数字之和。
```c
#include <stdio.h>
void calculateDigitsAndSum() {
int number = 0, digitCount = 0, sumOfDigits = 0;
// 输入正整数
printf("请输入一个正整数:");
scanf("%d", &number);
if (number == 0) {
// 特殊情况处理:如果输入为0,则位数为1,各位数字之和也为0
digitCount = 1;
sumOfDigits = 0;
} else {
while (number != 0) {
int lastDigit = number % 10; // 获取当前最低位数字
sumOfDigits += lastDigit; // 将该位加入总和
number /= 10; // 去掉最低位
digitCount++; // 统计位数增加
}
}
// 输出结果
printf("该数的位数:%d\n", digitCount);
printf("该数的各位数字之和:%d\n", sumOfDigits);
}
int main() {
calculateDigitsAndSum();
return 0;
}
```
#### 解析
上述代码通过`while`循环逐步提取输入正整数的每一位数字,并将其累加到变量`sumOfDigits`中,同时统计位数至变量`digitCount`。对于特殊情况(如输入为0),进行了单独判断以确保逻辑正确性[^1]。
此外,在其他引用中的方法也展示了类似的思路,即利用取模运算(`%`)获取最后一位数字,再通过除法操作(`/`)去掉已处理的一位,直至整个数值降为零为止[^2][^3][^4]。
---
阅读全文
相关推荐


















