C语言【问题描述】 现有 N(N≤1000) 名同学参加了期末考试,并且获得了每名同学的信息:姓名(不超过 8 个字符的字符串,没有空格)、语文、数学、英语成绩(均为不超过 150 的自然数)。总分最高的学生就是最厉害的。请设计合理的结构体来存放输入数据,并对其进行操作,输出最厉害的学生各项信息(姓名、各科成绩)。如果有多个总分相同的学生,输出靠前的那位。 【输入形式】 第一行一个整数 N。 接下来 N 行,每行依次为学生姓名,语文成绩,数学成绩,英语成绩,以空格隔开。 【输出形式】 输出最优秀的一位学生,格式同输入。 【样例输入1】 3 senpai 114 51 4 lxl 114 10 23 fafa 51 42 60 【样例输出1】 senpai 114 51 4 【样例输入2】 3 zhang 100 100 100 liu 100 100 100 fafa 99 99 60 【样例输出2】 zhang 100 100 100
时间: 2024-02-22 22:58:13 浏览: 180
输出学生成绩(C语言)
以下是 C 语言的代码实现,使用结构体存储学生信息,遍历结构体数组找到总分最高的学生并输出其信息:
```c
#include <stdio.h>
struct Student {
char name[9];
int chinese;
int math;
int english;
int total;
};
int main() {
int n;
scanf("%d", &n);
struct Student students[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %d %d", students[i].name, &students[i].chinese, &students[i].math, &students[i].english);
students[i].total = students[i].chinese + students[i].math + students[i].english;
}
int max_total = -1;
int max_index = -1;
for (int i = 0; i < n; i++) {
if (students[i].total > max_total) {
max_total = students[i].total;
max_index = i;
}
}
printf("%s %d %d %d", students[max_index].name, students[max_index].chinese, students[max_index].math, students[max_index].english);
return 0;
}
```
输入样例:
```
3
senpai 114 51 4
lxl 114 10 23
fafa 51 42 60
```
输出样例:
```
senpai 114 51 4
```
阅读全文