有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)
时间: 2024-12-23 12:16:23 浏览: 65
为了实现这个功能,我们可以创建一个结构体来存储学生的信息,然后编写一个主程序来读取输入并计算结果。这里是一个简单的C语言实现:
```c
#include <stdio.h>
#include <string.h>
// 定义一个结构体来存储学生信息
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float course1, course2, course3; // 三门课程的成绩
} Student;
// 函数声明用于计算平均分和最高分
void calculate_average(Student students[], int num_students);
Student find_highest_score(Student students[], int num_students);
int main() {
Student students[10];
int i;
printf("请输入10名学生的信息(学号、姓名、三门课程成绩):\n");
for (i = 0; i < 10; i++) {
printf("学生 %d 的信息: ", i + 1);
scanf("%d", &students[i].student_id);
fgets(students[i].name, sizeof(students[i].name), stdin); // 注意处理换行符
scanf("%f %f %f", &students[i].course1, &students[i].course2, &students[i].course3);
}
// 计算所有学生的平均分和找到最高分的学生
calculate_average(students, 10);
Student highest_student = find_highest_score(students, 10);
// 输出结果
printf("\n三门课程总平均成绩: %.2f\n", highest_student.course1 + highest_student.course2 + highest_student.course3 / 3.0);
printf("最高分学生信息:\n");
printf("学号: %d\n", highest_student.student_id);
printf("姓名: %s\n", highest_student.name);
printf("三门课程成绩: %.2f %.2f %.2f\n", highest_student.course1, highest_student.course2, highest_student.course3);
printf("平均分数: %.2f\n", highest_student.course1 + highest_student.course2 + highest_student.course3 / 3.0);
return 0;
}
// 计算平均分的函数
void calculate_average(Student students[], int num_students) {
float total_score = 0;
for (int i = 0; i < num_students; i++) {
total_score += students[i].course1 + students[i].course2 + students[i].course3;
}
float average = total_score / (num_students * 3);
printf("平均分: %.2f\n", average);
}
// 找到最高分学生的函数
Student find_highest_score(Student students[], int num_students) {
Student highest_student = students[0];
for (int i = 1; i < num_students; i++) {
if (students[i].course1 + students[i].course2 + students[i].course3 > highest_student.course1 + highest_student.course2 + highest_student.course3) {
highest_student = students[i];
}
}
return highest_student;
}
```
在这个代码中,我们首先定义了一个`Student`结构体,包含学号、姓名和三门课程的成绩。接着,我们在`main`函数中循环获取用户的输入,并将其存储在结构体数组中。然后分别调用`calculate_average`函数计算平均分,`find_highest_score`函数找出最高分的学生。最后,我们将结果输出。
阅读全文
相关推荐
















