|
发表于 2023-12-25 19:09:45
|
显示全部楼层
可以使用结构体来表示学生的基本信息,然后通过循环读取每个学生的信息,并计算他们的总分。同时,可以使用一个变量,记录当前总分最高的学生的信息。
首先,定义一个结构体来表示学生的基本信息:
- struct Student {
- char id[6]; // 学号
- char name[11]; // 姓名
- int score1; // 成绩1
- int score2; // 成绩2
- int score3; // 成绩3
- int totalScore; // 总分
- };
复制代码 接下来,根据输入的学生数量N,创建一个长度为N的学生数组,并循环读取每个学生的信息:
- #include <stdio.h>
- struct Student {
- char id[6]; // 学号
- char name[11]; // 姓名
- int score1; // 成绩1
- int score2; // 成绩2
- int score3; // 成绩3
- int totalScore; // 总分
- };
- int main()
- {
- int N;
- scanf("%d", &N);
-
- struct Student students[N];
- int maxTotalScore = 0; // 最高总分
-
- for (int i = 0; i < N; i++) {
- scanf("%s %s %d %d %d", students[i].id, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
-
- students[i].totalScore = students[i].score1 + students[i].score2 + students[i].score3;
-
- if (students[i].totalScore > maxTotalScore) {
- maxTotalScore = students[i].totalScore;
- }
- }
-
- // 找到总分最高的学生
- for (int i = 0; i < N; i++) {
- if (students[i].totalScore == maxTotalScore) {
- printf("%s %s %d\n", students[i].name, students[i].id, students[i].totalScore);
- break;
- }
- }
-
- return 0;
- }
复制代码
这样,我们就可以找到总分最高的学生的姓名、学号和总分了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|