用C语言编写一函数aver(a,n),其中a是整型一维数组, n是a数组的长度,要求通过全局变量pave和naye将a数组中正数和负数的平均值传递给调用程序。
时间: 2023-06-13 11:09:21 浏览: 465
以下是实现代码:
```c
#include <stdio.h>
int pave, naye; // 全局变量
void aver(int a[], int n) {
int i, sum_positive = 0, sum_negative = 0;
int count_positive = 0, count_negative = 0;
for (i = 0; i < n; i++) {
if (a[i] > 0) {
sum_positive += a[i];
count_positive++;
}
else if (a[i] < 0) {
sum_negative += a[i];
count_negative++;
}
}
if (count_positive > 0)
pave = sum_positive / count_positive;
else
pave = 0;
if (count_negative > 0)
naye = sum_negative / count_negative;
else
naye = 0;
}
int main() {
int a[] = { 2, -3, 5, -7, 8, -10, 13, -15 };
int n = sizeof(a) / sizeof(a[0]);
int i;
aver(a, n);
printf("Positive average: %d\n", pave);
printf("Negative average: %d\n", naye);
return 0;
}
```
函数aver接收一个整型数组a和其长度n作为参数,通过遍历数组,统计正数和负数的数量及其和,再计算出正数和负数的平均值,最后将平均值存储在全局变量pave和naye中。调用程序可以通过访问这两个全局变量来获取平均值。在main函数中,我们定义了一个整型数组a,并通过sizeof运算符计算出其长度n。然后调用aver函数并输出结果。
阅读全文