编写程序实现2.编写一个输入某个学生10门课程成绩的函数(10门课程成绩放到结构体数组中,结构体包括:课程编号,课程名称,课程成绩)。 3.编写一个求10门成绩中最高成绩的函数,输出最高成绩和对应的课程名称,如果有多个最高成绩,则每个最高成绩均输出。 4.编写一个求10门成绩平均成绩的函数。 5.编写函数求出比平均成绩高的所有课程及成绩
时间: 2024-02-25 11:57:44 浏览: 50
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define COURSE_NUM 10
// 课程结构体
struct Course {
int id;
char name[20];
int score;
};
// 输入学生成绩函数
void input_scores(struct Course courses[]) {
printf("请输入学生各门课程成绩:\n");
for (int i = 0; i < COURSE_NUM; i++) {
printf("请输入第%d门课程编号:", i+1);
scanf("%d", &courses[i].id);
printf("请输入第%d门课程名称:", i+1);
scanf("%s", courses[i].name);
printf("请输入第%d门课程成绩:", i+1);
scanf("%d", &courses[i].score);
}
}
// 求最高成绩函数
void find_highest_score(struct Course courses[]) {
int max_score = 0;
char max_names[COURSE_NUM][20];
int max_count = 0;
for (int i = 0; i < COURSE_NUM; i++) {
if (courses[i].score > max_score) {
max_score = courses[i].score;
max_count = 1;
strcpy(max_names[0], courses[i].name);
} else if (courses[i].score == max_score) {
strcpy(max_names[max_count], courses[i].name);
max_count++;
}
}
printf("最高成绩为:%d,对应的课程为:", max_score);
for (int i = 0; i < max_count; i++) {
printf("%s ", max_names[i]);
}
printf("\n");
}
// 求平均成绩函数
float find_average_score(struct Course courses[]) {
int sum = 0;
for (int i = 0; i < COURSE_NUM; i++) {
sum += courses[i].score;
}
float average_score = (float)sum / COURSE_NUM;
printf("平均成绩为:%.2f\n", average_score);
return average_score;
}
// 比平均成绩高的课程及成绩函数
void find_scores_above_average(struct Course courses[], float average_score) {
printf("比平均成绩高的课程及成绩:\n");
for (int i = 0; i < COURSE_NUM; i++) {
if (courses[i].score > average_score) {
printf("%s %d\n", courses[i].name, courses[i].score);
}
}
}
int main() {
struct Course courses[COURSE_NUM];
float average_score;
input_scores(courses);
find_highest_score(courses);
average_score = find_average_score(courses);
find_scores_above_average(courses, average_score);
return 0;
}
```
输入某个学生10门课程成绩的函数为 `input_scores`,求10门成绩中最高成绩的函数为 `find_highest_score`,求10门成绩平均成绩的函数为 `find_average_score`,求比平均成绩高的所有课程及成绩的函数为 `find_scores_above_average`。代码中使用结构体数组来存储课程信息,每个结构体包括课程编号、课程名称和课程成绩。函数的实现比较简单,具体实现细节见代码注释。
阅读全文