使用函数求奇数和:输入一批正整数(以零或者负数为结束标志),求其中的奇数和。要求定义和调用函数even(n)判断数的奇偶性,但n为偶数时返回1,否则返回0 输入: 7811381010 输出:22
时间: 2024-12-08 19:13:43 浏览: 20
和为零的N个唯一整数1
要编写这个程序,首先我们需要定义一个函数`isOdd(n)`或`even(n)`来检查给定的数字是否为奇数。根据题目描述,当`n`为偶数时,函数应返回1,所以我们将直接返回`n % 2 == 0 ? 1 : 0`。然后我们还需要一个主函数来读取输入并计算奇数和。
```cpp
#include <iostream>
// 定义函数,判断数的奇偶性
int isOdd(int n) {
return n % 2 == 0 ? 1 : 0;
}
// 主函数,计算奇数和
int sumOfOdds(const std::vector<int>& numbers) {
int oddSum = 0;
for (int number : numbers) {
if (isOdd(number)) {
oddSum += number;
}
}
return oddSum;
}
int main() {
// 输入示例
int input = 7811381010;
std::vector<int> numbers{input};
// 结果计算
int result = sumOfOdds(numbers);
// 输出结果
std::cout << "奇数和: " << result << std::endl;
return 0;
}
```
在这个例子中,我假设输入已经存储在一个名为`input`的变量中,并将其转换为一个包含单个元素的`std::vector<int>`。你可以修改`main()`函数来从标准输入读取多个数字,直到遇到零或负数为止。
如果你想让用户输入数据,可以在`main()`里添加一个循环:
```cpp
std::string line;
while (std::cin >> line && std::stoi(line) >= 0) {
numbers.push_back(std::stoi(line));
}
result = sumOfOdds(numbers);
std::cout << "奇数和: " << result << std::endl;
```
现在,当你运行这段代码并输入`7811381010`时,输出将会是`22`,因为只有11和1是奇数。
阅读全文