1.编写依程序完成如下功能 有两个班,班级学生最多都不超过30人参加考试,考 试后要求: 1)计算每个班级的平均分; 2)按成绩高到低排出每个班成绩; 要求:学生成绩用数组score1和数组score2存储 功能(1)和(2)都用函数实现 其中:功能(1)的函数名为average,功能(2) 的函数名为sort 在主函数中输出两个班的平均分和排好序的成绩。
时间: 2024-02-17 11:02:20 浏览: 56
以下是实现功能的完整代码:
```c
#include <stdio.h>
void average(int score[], int n) {
int sum = 0;
for (int i=0; i<n; i++)
sum += score[i];
float avg = (float)sum / n;
printf("平均分为:%.2f\n", avg);
}
void sort(int score[], int n) {
for (int i=0; i<n-1; i++) {
for (int j=i+1; j<n; j++) {
if (score[i] < score[j]) {
int temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}
}
int main() {
int score1[30] = {85, 76, 92, 88, 78, 90, 80, 79, 83, 89, 91, 87, 77, 95, 86, 84, 82, 73, 94, 81, 74, 75, 72, 93, 70};
int score2[30] = {77, 78, 85, 88, 82, 81, 79, 73, 91, 89, 84, 83, 86, 92, 87, 90, 76, 80, 74, 72, 75, 71, 94, 93, 95};
int n1 = 25, n2 = 24;
printf("班级1:\n");
average(score1, n1);
sort(score1, n1);
printf("成绩排名:\n");
for (int i=0; i<n1; i++)
printf("%d ", score1[i]);
printf("\n\n班级2:\n");
average(score2, n2);
sort(score2, n2);
printf("成绩排名:\n");
for (int i=0; i<n2; i++)
printf("%d ", score2[i]);
return 0;
}
```
在这个程序中,我们定义了两个函数 `average` 和 `sort`,分别用来计算平均分和按成绩排序。这两个函数接受一个整型数组 `score` 和数组的长度 `n` 作为参数。在 `average` 函数中,我们使用循环计算出数组中所有元素的和,然后除以数组长度得到平均分。在 `sort` 函数中,我们使用两个嵌套循环遍历数组,如果前面一个元素比后面一个元素小,则交换它们的位置,这样循环结束后数组就按成绩从高到低排好序了。
在主函数中,我们定义了两个班的成绩数组 `score1` 和 `score2`,以及它们的长度 `n1` 和 `n2`。首先计算每个班级的平均分,并输出结果。然后调用 `sort` 函数,将每个班级的成绩按从高到低排好序,并输出结果。
希望这个例子能帮助你理解如何使用函数实现数组的操作。
阅读全文