如何编写一个函数来计算一系列正整数(以0或负数作为结束标记)中的奇数总和,同时利用另一个辅助函数even(n),该函数根据传入的整数n判断其奇偶性?如果n是偶数,even(n)返回1;如果是奇数,返回0。用C语言写出
时间: 2024-11-22 16:47:51 浏览: 29
和为零的N个唯一整数1
在C语言中,你可以通过创建两个函数来实现这个功能。首先,我们定义一个`is_odd`函数用于检查输入的数字是否为奇数,然后在主函数`sum_of_odds`中遍历数组并累加奇数。
下面是实现的示例:
```c
#include <stdio.h>
// 辅助函数,判断给定整数n是否为奇数
int is_odd(int n) {
return (n % 2 == 0) ? 0 : 1;
}
// 主函数,计算一系列正整数中的奇数总和
int sum_of_odds(int arr[], int end_marker) {
int sum = 0;
for (int i = 0; i <= end_marker; i++) {
if (is_odd(arr[i])) {
sum += arr[i];
}
}
return sum;
}
int main() {
int numbers[] = {1, 2, 3, 4, -5, 6, 7, 0}; // 示例数组
int end_index = sizeof(numbers) / sizeof(numbers[0]); // 获取数组长度
int total_sum = sum_of_odds(numbers, end_index); // 调用函数计算奇数之和
printf("奇数总和是: %d\n", total_sum);
return 0;
}
```
在这个程序中,当你运行`main`函数时,它会打印出数组`numbers`中所有奇数的总和。请注意,这个实现假设`end_marker`不是实际的数组边界,而是最后一个有效元素的位置(包括它)。如果数组中有负数,并且你想停止在第一个负数之前,你需要调整循环条件。
阅读全文