c语言中读取一批正整数,求其中奇数的和
时间: 2024-10-23 20:13:24 浏览: 48
在 C 语言中,你可以通过循环结构如 `for` 或者 `while` 来读取用户输入的一批正整数,然后逐个检查它们是否为奇数,并累加奇数的和。这里是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num, sum = 0;
printf("请输入一系列正整数,输入0结束:\n");
while (scanf("%d", &num) == 1 && num != 0) { // 使用while条件同时接收数字和判断是否结束
if (num % 2 != 0) { // 检查是否为奇数
sum += num; // 累加奇数
}
}
printf("所有奇数之和为:%d\n", sum);
return 0;
}
```
在这个程序中,我们首先声明一个变量 `sum` 来存储奇数的总和,然后在一个无限循环中等待用户的输入。如果输入的是非零正整数,我们就检查它是否能被2整除(即 `num % 2 != 0`),若不能,则它是奇数,我们将它加到 `sum` 上。当用户输入0时,我们会停止循环。
相关问题
用C语言写输入n个正整数求其中的奇数和
在C语言中,你可以使用循环和条件判断来实现这个功能。以下是一个简单的示例程序,它会提示用户输入n个正整数,然后计算并输出所有奇数的总和:
```c
#include <stdio.h>
int main() {
int n, num, sum = 0; // 初始化变量n(输入的整数个数),num(当前输入的数字),sum(奇数之和)
printf("请输入正整数的个数: ");
scanf("%d", &n); // 读取用户输入
for (int i = 1; i <= n; i++) { // 使用for循环遍历从1到n的所有数字
printf("请输入第%d个正整数: ", i);
scanf("%d", &num); // 读取每个数字
if (num % 2 != 0) { // 判断数字是否为奇数
sum += num; // 若为奇数,则加到总和上
}
}
printf("这些正整数中的奇数和为: %d\n", sum); // 输出结果
return 0;
}
用C语言写读入一批正整数(以零或负数为结束标志),求其中的奇数和。请使朋while语句实现循环。
在C语言中,你可以使用`while`循环来实现这个功能。下面是一个简单的示例程序,它会从用户输入读取正整数,直到遇到零或负数为止,并计算所有奇数的和:
```c
#include <stdio.h>
int main() {
int num = 0; // 初始化一个变量存储当前数字
int sum = 0; // 初始化奇数和为0
int is_odd = 0; // 标记当前数字是否为奇数
while (1) { // 使用无限循环,直到遇到非正整数
printf("请输入一个正整数(输入0或负数结束):");
scanf("%d", &num);
if (num <= 0) { // 如果输入的是零或负数,跳出循环
break;
}
// 判断数字是否为奇数
is_odd = num % 2 != 0;
if (is_odd) {
sum += num; // 如果是奇数,累加到总和上
}
}
printf("奇数之和为:%d\n", sum); // 输出结果
return 0;
}
```
在这个程序中,用户可以持续输入正整数,每输入一个就检查是否为奇数并累加到`sum`中,直到输入非正整数时退出循环。
阅读全文