使用c语言解决此问题
时间: 2024-11-30 21:17:29 浏览: 7
在C语言中,我们可以使用`<math.h>`库中的`ilog10()`函数来计算位数,并使用循环逐位相加来计算各位数字之和。这里是一个简单的解决方案:
```c
#include <stdio.h>
#include <math.h>
// 函数定义
void calculate_digits(int num) {
// 计算位数
int count = (int)(log10(num) + 1);
// 初始化数字之和
int sum = 0;
// 从低位到高位遍历每一位
while (num != 0) {
// 取余操作得到当前位
int digit = num % 10;
sum += digit;
// 整除操作去掉最低位
num /= 10;
}
printf("Number of digits: %d\n", count);
printf("Sum of digits: %d\n", sum);
}
int main() {
int N = 12345; // 输入的正整数
calculate_digits(N);
return 0;
}
```
当你运行这个程序,它会分别输出输入整数N的位数和各位数字之和。
阅读全文