使用c语言,给定一个一维数组,包含10个学生的成绩,求出平均分、最高分和最低分。要求使用将数组传至函数进行操作的方法。
时间: 2024-05-11 19:16:09 浏览: 117
你好,我可以回答你的问题,以下是解答:
您可以使用以下的C语言代码来完成此任务:
```c
#include <stdio.h>
void calculateMarks(int arr[], int n, float* avg, int* max, int* min) {
int sum = 0;
*max = *min = arr[0];
for (int i = 0; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
sum += arr[i];
}
*avg = (float) sum / n;
}
int main() {
int marks[10] = {85, 78, 92, 64, 86, 95, 71, 88, 76, 83};
float avg;
int max, min;
calculateMarks(marks, 10, &avg, &max, &min);
printf("平均分: %.2f\n", avg);
printf("最高分: %d\n", max);
printf("最低分: %d\n", min);
return 0;
}
```
这段代码中,我们使用了一个calculateMarks函数来计算学生的平均分、最高分和最低分。该函数接收一个整型数组、数组大小以及三个指针作为参数。指针用于存储函数计算出来的平均分、最高分和最低分。
在函数中,我们使用一个循环来计算数组的总和,并且找到数组中的最高分和最低分。最后,我们使用计算出的总和来计算平均分,并将结果保存到avg指针所指向的变量中。
在主函数中,我们定义了一个marks数组,并将学生成绩存储在其中。然后我们调用了calculateMarks函数,并将指针传递给函数来存储平均分、最高分和最低分。最后,我们使用printf语句将计算结果打印到屏幕上。
希望这个解答对您有所帮助!如果您有任何其他问题,请随时告诉我。
阅读全文