用c语言输入一个数n,输出n的位数和其各位数字之和
时间: 2024-09-22 17:03:16 浏览: 55
求整数的位数及各位数字之和 C语言
在C语言中,你可以使用`scanf`函数来获取用户输入的整数`n`,然后通过循环结构计算出它的位数以及每位数字之和。这里是一个简单的示例:
```c
#include <stdio.h>
int main() {
int n, sum = 0; // 初始化位数和各位数字之和
int digit; // 用于临时存储每一位数字
printf("请输入一个整数: ");
scanf("%d", &n); // 输入n
// 计算位数
int num_bits = (n == 0) ? 1 : (n > 0 ? __builtin_clz(n) + 1 : -1);
printf("这个数有 %d 位。\n", num_bits);
// 计算各位数字之和
while (n != 0) {
digit = n % 10; // 取余得到最后一位数字
sum += digit;
n /= 10; // 删除最低有效位
}
printf("各位数字之和为: %d\n", sum);
return 0;
}
```
在这个程序中,我们首先获取用户输入的`n`,然后使用`__builtin_clz`函数(对于非零正数)或直接判断`n == 0`来计算位数。接下来,我们使用循环逐步取出每一位数字并累加到`sum`中。
阅读全文