本题要求编写程序,对于给定的正整数N,求它的位数及其各位数字之和。输人格式: 输入在一行中给出一个不超过10的9次方的正整数 N, 输出格式, 在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
时间: 2024-11-30 18:19:19 浏览: 49
求给定正整数的位数和并逆序打印各位数
为了编写这个程序,你需要使用C语言的基本输入/输出功能以及数学运算。这里是一个简单的步骤来实现这个功能:
1. 首先,你需要定义一个变量`count`用于记录位数,初始化为0。
2. 使用`while`循环遍历输入的正整数的每一位。每次循环都将当前数字加到`count`上,同时处理该位置的数值。
3. 对于每一位数字,你可以使用`%`操作符获取其个位值,然后加上相应的计数器。
4. 当输入已经读完(即`N == 0`时),跳出循环。
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
long long int N, digit_sum = 0, count = 0;
// 输入N
printf("请输入一个正整数: ");
scanf("%lld", &N);
// 计算位数并累加每位数字
while (N != 0) {
digit_sum += N % 10; // 加上当前位的数字
count++; // 增加位数
N /= 10; // 移除最低有效位
}
// 输出结果
printf("位数: %d, 各位数字之和: %lld\n", count, digit_sum);
return 0;
}
```
运行这段代码,它会提示你输入一个正整数,然后显示位数和各位数字之和。
阅读全文