读入一批正整数(以零或者负数为结束标志),求其中的奇数和。请使用while语句实现循环
时间: 2024-11-06 12:15:23 浏览: 16
判断字符序列是否是回文
5星 · 资源好评率100%
要使用`while`语句读取一组正整数并计算奇数之和,直到遇到0或负数为止,你可以这样做:
```c
#include <stdio.h>
int main() {
int num, sum = 0; // 初始化一个变量sum用于存储奇数总和
while (scanf("%d", &num) == 1) { // 用scanf读入一个整数
if (num >= 0 && num % 2 != 0) { // 如果数字是非负且是奇数
sum += num; // 将其加到总和上
}
}
printf("奇数之和是:%d\n", sum); // 输出结果
return 0;
}
```
这段代码的工作原理是,`scanf`用来从标准输入读取一个整数到`num`变量。`if`语句检查是否读到了非负奇数(如果`num`是偶数,`num % 2`的结果将是0;如果是奇数,则结果是1)。如果是奇数,就将其添加到`sum`中。当输入的是0或负数时,`scanf`返回0,`while`条件不满足,退出循环。
阅读全文