有一个一维数组,内放 10 个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。解题思路:调用一个函数可以得到一个函数返回值,现在希望通过函数调用能得到3个结果。可以利用全局变量来达到此目的。用C语言
时间: 2024-02-03 17:13:29 浏览: 275
以下是一个求解平均分、最高分和最低分的函数实现:
```c
#include <stdio.h>
int scores[10]; // 全局数组,存放学生成绩
void calc_stats(int num_scores, int *max, int *min, double *avg) {
int i;
*max = scores[0];
*min = scores[0];
*avg = 0.0;
for (i = 0; i < num_scores; ++i) {
if (scores[i] > *max) {
*max = scores[i];
}
if (scores[i] < *min) {
*min = scores[i];
}
*avg += scores[i];
}
*avg /= num_scores;
}
int main() {
int i, max, min;
double avg;
printf("请输入 10 个学生成绩:\n");
for (i = 0; i < 10; ++i) {
scanf("%d", &scores[i]);
}
calc_stats(10, &max, &min, &avg);
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
printf("平均分:%.2f\n", avg);
return 0;
}
```
这个程序中,全局变量 `scores` 存放学生成绩。`calc_stats` 函数接受学生成绩数量、指向最高分、最低分和平均分的指针作为参数,并计算出这三个值。主函数读取学生成绩并调用 `calc_stats` 函数,然后输出计算结果。
阅读全文