请编写一个程序,输出10个学生的学号、姓名、3门课程的成绩,求出总分最高的学生姓名并输出。(用数据结构数组完成)
时间: 2024-02-20 17:01:47 浏览: 83
好的,下面是一个示例代码,用来实现你的要求:
```c
#include <stdio.h>
#include <string.h>
#define NUM_OF_STUDENTS 10
#define NUM_OF_COURSES 3
struct Student {
char id[10];
char name[20];
int scores[NUM_OF_COURSES];
int total_score;
};
int main() {
struct Student students[NUM_OF_STUDENTS];
int i, j, max_index = 0;
// 输入学生信息
for (i = 0; i < NUM_OF_STUDENTS; i++) {
printf("请输入第 %d 个学生的学号、姓名和 %d 门课程的成绩:\n", i + 1, NUM_OF_COURSES);
scanf("%s %s", students[i].id, students[i].name);
students[i].total_score = 0;
for (j = 0; j < NUM_OF_COURSES; j++) {
scanf("%d", &students[i].scores[j]);
students[i].total_score += students[i].scores[j];
}
}
// 求出总分最高的学生
for (i = 1; i < NUM_OF_STUDENTS; i++) {
if (students[i].total_score > students[max_index].total_score) {
max_index = i;
}
}
// 输出结果
printf("\n总分最高的学生是:%s,成绩为:", students[max_index].name);
for (j = 0; j < NUM_OF_COURSES; j++) {
printf("%d ", students[max_index].scores[j]);
}
printf(",总分为:%d\n", students[max_index].total_score);
return 0;
}
```
这个程序使用了一个结构体 `Student`,其中包含了学生的学号、姓名、各门课程的成绩和总分。首先,程序会让你输入每个学生的信息,并计算出总分。然后,程序会遍历所有学生,找出总分最高的那个学生,并输出其姓名和成绩。
希望这个程序能够帮到你!