C语言编程有一个一维数组,内放10个学生成绩。写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。
时间: 2024-02-20 19:58:07 浏览: 72
好的,下面是实现代码:
```c
#include <stdio.h>
void calculate(int arr[], int size, float *average, int *max, int *min); // 声明计算平均分、最高分和最低分的函数
int main() {
int arr[] = {85, 78, 92, 65, 87, 74, 90, 82, 79, 76};
int size = sizeof(arr) / sizeof(arr[0]);
float average;
int max, min;
calculate(arr, size, &average, &max, &min);
printf("平均分:%f,最高分:%d,最低分:%d\n", average, max, min);
return 0;
}
void calculate(int arr[], int size, float *average, int *max, int *min) {
int sum = 0;
*max = arr[0]; // 假设第一个元素为最大值
*min = arr[0]; // 假设第一个元素为最小值
for (int i = 0; i < size; i++) {
sum += arr[i]; // 累加总分
if (arr[i] > *max) { // 更新最大值
*max = arr[i];
}
if (arr[i] < *min) { // 更新最小值
*min = arr[i];
}
}
*average = (float)sum / size; // 计算平均分
}
```
这个程序定义了一个 `calculate` 函数来计算一个数组中的平均分、最高分和最低分。在主函数中,我们定义了一个整型数组 `arr`,然后通过 `sizeof` 运算符计算出它的大小。然后,我们调用 `calculate` 函数来计算平均分、最高分和最低分,并将结果输出到屏幕上。
`calculate` 函数中,我们使用了三个指针参数 `average`、`max` 和 `min`,它们分别指向计算出的平均分、最高分和最低分。在循环中,我们累加总分,并更新最大值和最小值。最后,我们计算平均分,并将结果存储在 `average` 指针指向的变量中。
运行程序,可以得到以下输出:
```
平均分:81.800003,最高分:92,最低分:65
```
希望能够帮到你!如果你还有其他问题,可以继续问我。
阅读全文