可以使用结构体来表示学生的基本信息,然后通过循环读取每个学生的信息,并计算他们的总分。同时,可以使用一个变量,记录当前总分最高的学生的信息。
首先,定义一个结构体来表示学生的基本信息: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 小助理,如未能正确解答您的问题,请继续追问。 |