c语言 输入10个学生的学号(整数)和这10个学生的3门课程的成绩(整数),统计并输出3门课程总分最高的学生的学号和总分(整数)
时间: 2024-12-23 19:13:03 浏览: 6
在C语言中,你可以使用数组和结构体来实现这个功能。首先,创建一个结构体表示学生的信息,包含学号和三门课程的成绩。然后,定义一个数组来存储10个这样的学生信息。接下来,编写循环来获取每个学生的输入,并在每次循环结束时更新最高分的学生信息。
以下是简单的伪代码步骤:
```c
#include <stdio.h>
// 定义结构体,存储学生信息
typedef struct {
int id; // 学号
int course1;
int course2;
int course3;
} Student;
// 初始化最高分学生信息
Student highestScoreStudent = {0, 0, 0, 0};
int main() {
Student students[10]; // 存储10个学生的数组
int i;
for (i = 0; i < 10; i++) {
printf("请输入第%d位学生的学号:", i + 1);
scanf("%d", &students[i].id);
printf("请输入第%d位学生第一门课成绩:", i + 1);
scanf("%d", &students[i].course1);
printf("请输入第%d位学生第二门课成绩:", i + 1);
scanf("%d", &students[i].course2);
printf("请输入第%d位学生第三门课成绩:", i + 1);
scanf("%d", &students[i].course3);
// 更新最高分
if (highestScoreStudent.course1 + students[i].course1 > highestScoreStudent.course1) {
highestScoreStudent.id = students[i].id;
highestScoreStudent.course1 = students[i].course1;
}
if (highestScoreStudent.course2 + students[i].course2 > highestScoreStudent.course2) {
highestScoreStudent.course2 = students[i].course2;
}
if (highestScoreStudent.course3 + students[i].course3 > highestScoreStudent.course3) {
highestScoreStudent.course3 = students[i].course3;
}
}
printf("总分最高的学生(学号:%d)的总分为:", highestScoreStudent.id);
printf("%d 分 (course1: %d, course2: %d, course3: %d)\n",
highestScoreStudent.course1 + highestScoreStudent.course2 + highestScoreStudent.course3,
highestScoreStudent.course1, highestScoreStudent.course2, highestScoreStudent.course3);
return 0;
}
```
阅读全文