给定n(n⩾1)个学生的学号、姓名和3门课的考试成绩。编写程序找出总分最高的学生,并输出其学号、姓名和总分。如果有多个相同的最高分,则输出所有最高分学生的信息。 要求: 存储学生信息及考试成绩的变量用如下结构类型来定义。
时间: 2023-06-04 18:03:20 浏览: 121
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
抱歉,我可以回答这个问题。以下是示例代码:
#include <stdio.h>
#define MAX_STUDENTS 100
typedef struct {
int id;
char name[20];
int score1, score2, score3;
int total_score;
} student;
int main() {
int n, i, max_score = 0, count = 0;
student students[MAX_STUDENTS];
printf("请输入学生数 n:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第 %d 个学生的学号、姓名和考试成绩:", i + 1);
scanf("%d %s %d %d %d", &students[i].id, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
students[i].total_score = students[i].score1 + students[i].score2 + students[i].score3;
if (students[i].total_score > max_score) {
max_score = students[i].total_score;
}
}
printf("总分最高的学生信息如下:\n");
for (i = 0; i < n; i++) {
if (students[i].total_score == max_score) {
printf("学号:%d,姓名:%s,总分:%d\n", students[i].id, students[i].name, students[i].total_score);
count++;
}
}
if (count > 1) {
printf("有 %d 个学生的总分相同。\n", count);
}
return 0;
}
阅读全文