用C++写一个有10名学生,每名学生包含姓名以及语文、英语、数学三门课程的成绩,用户输入10名学生的信息,求每名学生的平均分,并输出成绩最好的学生姓名和平均成绩的代码
时间: 2024-05-06 19:20:31 浏览: 57
```c
#include <stdio.h>
#include <string.h>
#define NUM_STUDENTS 10
#define MAX_NAME_LENGTH 20
typedef struct {
char name[MAX_NAME_LENGTH];
float chinese;
float english;
float math;
float average;
} Student;
int main() {
Student students[NUM_STUDENTS];
// 输入学生信息
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d名学生的姓名、语文、英语、数学成绩:\n", i+1);
scanf("%s%f%f%f", students[i].name, &students[i].chinese, &students[i].english, &students[i].math);
// 计算平均分
students[i].average = (students[i].chinese + students[i].english + students[i].math) / 3;
}
// 找出平均分最高的学生
int max_index = 0;
float max_average = students[0].average;
for (int i = 1; i < NUM_STUDENTS; i++) {
if (students[i].average > max_average) {
max_index = i;
max_average = students[i].average;
}
}
// 输出结果
printf("平均分最高的学生是%s,平均分为%.2f\n", students[max_index].name, max_average);
return 0;
}
```
注意事项:
1. `typedef struct` 定义了一个结构体类型 `Student`,包含了学生的姓名和三门课程的成绩,以及平均分。
2. 在 `main()` 函数中定义了一个 `Student` 类型的数组 `students`,包含了 10 名学生的信息。
3. 在输入学生信息的过程中,将同时计算每名学生的平均分。
4. 在找出平均分最高的学生时,需要遍历 `students` 数组,找到平均分最高的学生的下标 `max_index` 和平均分 `max_average`。
5. 最后输出平均分最高的学生的姓名和平均分。
阅读全文