有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。 C语言代码怎么搞
时间: 2023-12-15 07:08:54 浏览: 71
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define STUDENT_NUM 10 // 学生数量
#define COURSE_NUM 3 // 课程数量
struct Student {
int id; // 学号
char name[20]; // 姓名
float scores[COURSE_NUM]; // 成绩数组
float average; // 平均成绩
};
void input_students(struct Student students[]) {
for (int i = 0; i < STUDENT_NUM; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
for (int j = 0; j < COURSE_NUM; j++) {
printf("请输入第%d门课的成绩:", j + 1);
scanf("%f", &students[i].scores[j]);
}
}
}
void calculate_average(struct Student students[]) {
for (int i = 0; i < STUDENT_NUM; i++) {
float sum = 0;
for (int j = 0; j < COURSE_NUM; j++) {
sum += students[i].scores[j];
}
students[i].average = sum / COURSE_NUM;
}
}
void print_average(struct Student students[]) {
float avg_scores[COURSE_NUM] = {0};
for (int i = 0; i < STUDENT_NUM; i++) {
for (int j = 0; j < COURSE_NUM; j++) {
avg_scores[j] += students[i].scores[j];
}
}
printf("3门课的平均成绩分别为:\n");
for (int i = 0; i < COURSE_NUM; i++) {
printf("第%d门课的平均成绩为:%.2f\n", i + 1, avg_scores[i] / STUDENT_NUM);
}
}
void print_highest_average(struct Student students[]) {
struct Student highest_student;
highest_student.average = 0;
for (int i = 0; i < STUDENT_NUM; i++) {
if (students[i].average > highest_student.average) {
highest_student = students[i];
}
}
printf("平均成绩最高的学生信息如下:\n");
printf("学号:%d\n", highest_student.id);
printf("姓名:%s\n", highest_student.name);
printf("成绩:");
for (int i = 0; i < COURSE_NUM; i++) {
printf("%.2f ", highest_student.scores[i]);
}
printf("\n");
printf("平均成绩:%.2f\n", highest_student.average);
}
int main() {
struct Student students[STUDENT_NUM];
input_students(students);
calculate_average(students);
print_average(students);
print_highest_average(students);
return 0;
}
```
在此代码中,我们首先定义了一个`Student`结构体,其中包含学号、姓名、成绩数组和平均分数。然后我们实现了`input_students()`函数来从键盘输入学生信息,实现了`calculate_average()`函数来计算每个学生的平均成绩,实现了`print_average()`函数来打印3门课的平均成绩,实现了`print_highest_average()`函数来打印平均成绩最高的学生的信息。最后,在`main()`函数中,我们调用了上述函数来完成整个程序的功能。
阅读全文