C语言实现,某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组做函数参数编程实现如下功能。 (1)录入每个学生考试成绩; (2)计算课程的平均分; (3)按成绩从高到低排序
时间: 2023-12-31 15:03:53 浏览: 94
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
好的,我来回答你的问题。
以下是 C 语言实现的代码,实现了你提出的三个功能:
```
#include <stdio.h>
void inputScores(int scores[], int n) {
printf("请输入 %d 名学生的成绩:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
}
double calculateAverage(int scores[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
return (double) sum / n;
}
void sortScores(int scores[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (scores[i] < scores[j]) {
int temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
}
int main() {
int n;
printf("请输入参加考试的人数:\n");
scanf("%d", &n);
int scores[n];
inputScores(scores, n);
double average = calculateAverage(scores, n);
printf("课程平均分为:%.2lf\n", average);
sortScores(scores, n);
printf("成绩从高到低排序:\n");
for (int i = 0; i < n; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
首先,我们定义了三个函数:
- `inputScores`:用于录入每个学生的成绩,需要传入一个整型数组 `scores` 和人数 `n`;
- `calculateAverage`:用于计算课程的平均分,需要传入一个整型数组 `scores` 和人数 `n`,返回一个双精度浮点型平均分;
- `sortScores`:用于按成绩从高到低排序,需要传入一个整型数组 `scores` 和人数 `n`。
在 `main` 函数中,我们首先读入参加考试的人数 `n`,然后定义一个长度为 `n` 的整型数组 `scores`。
接着,我们分别调用 `inputScores` 函数, `calculateAverage` 函数和 `sortScores` 函数,得到课程平均分和按成绩从高到低排序的成绩列表,最后输出结果。
希望这个代码对你有帮助!
阅读全文