求奇数和:读入一批正整数(以负数为结束标志),求其中的奇数和 请用C语言解答
时间: 2024-11-22 07:44:05 浏览: 6
头歌 C语言基本语法入门练习题 求m以内奇数的和
在C语言中,你可以使用`while`循环遍历输入的数字,同时判断每个数字是否为奇数。如果是奇数,则累加到总和中。当遇到负数时,我们知道已经到达结束标志,可以停止计算。下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int num = 0; // 存储奇数的临时变量
long sum = 0; // 总和
int input;
printf("请输入正整数(以负数结束):");
while ((input = getchar()) != EOF) { // 从标准输入读取字符
if (input >= '0' && input <= '9') { // 如果是数字字符
num = num * 10 + (input - '0'); // 继续累加
if (num % 2 != 0) { // 判断是否为奇数
sum += num;
num = 0; // 清零奇数部分,准备接受下一位数字
}
} else if (input == '-') { // 遇到负数,跳出循环
break;
} else { // 非数字字符,跳过
continue;
}
}
if (num > 0) { // 检查最后一个输入是否是奇数,如果是,加上
sum += num;
}
printf("奇数之和为:%ld\n", sum);
return 0;
}
```
阅读全文