C语言 2、指针编写函数,建立n个整型元素的一维数组,求所有元素的平均值,输出平均值以上的元素。
时间: 2024-02-13 12:02:48 浏览: 102
下面是一个实现了上述功能的 C 代码:
```c
#include <stdio.h>
#include <stdlib.h>
void aboveAverage(int *arr, int n);
int main() {
int n, *arr, sum = 0;
double avg;
printf("请输入数组的元素个数:");
scanf("%d", &n);
arr = (int *) malloc(sizeof(int) * n);
printf("请输入数组的元素(整数):\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
avg = (double) sum / n;
printf("平均值为:%.2f\n", avg);
aboveAverage(arr, n);
free(arr);
return 0;
}
void aboveAverage(int *arr, int n) {
double avg = 0;
int count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > avg) {
count++;
printf("%d ", arr[i]);
}
}
printf("\n共有%d个元素大于平均值\n", count);
}
```
首先,我们通过 `malloc` 动态分配了一个大小为 `n` 的整型数组,并且通过 for 循环读入每个元素,并求出了它们的和。然后,我们计算了所有元素的平均值,并将其存储在 `avg` 变量中。
接下来,我们调用了 `aboveAverage` 函数,该函数遍历整个数组,并输出所有大于平均值的元素,并计算它们的数量。
最后,我们使用 `free` 函数释放了为数组分配的内存。
阅读全文