c语言用数组 输入10个学生的学号(整数)和这10个学生的3门课程的成绩(整数),统计并输出3门课程总分最高的学生的学号和总分(整数)
时间: 2024-12-23 14:13:19 浏览: 3
在C语言中,你可以通过以下步骤来实现这个功能:
1. 定义一个结构体(struct),用于存储学生的信息,包括学号(int 类型)和三门课程的成绩(int 类型的数组)。
```c
typedef struct {
int student_id;
int scores[3];
} Student;
```
2. 创建一个Student类型的数组,可以容纳10名学生的数据。
```c
Student students[10];
```
3. 使用循环获取用户输入,包括每个学生的学号和成绩。
```c
for (int i = 0; i < 10; i++) {
printf("请输入第%d位学生的学号: ", i + 1);
scanf("%d", &students[i].student_id);
for (int j = 0; j < 3; j++) {
printf("请输入第%d门课程的成绩: ", j + 1);
scanf("%d", &students[i].scores[j]);
}
}
```
4. 初始化一个变量,如max_score,记录最高总分,以及对应的学号highest_id。假设初始值都为0。
5. 遍历数组,计算每位学生的总分,并更新max_score和highest_id。
```c
int max_score = 0;
int highest_id = -1;
for (int i = 0; i < 10; i++) {
int total_score = students[i].scores[0] + students[i].scores[1] + students[i].scores[2];
if (total_score > max_score) {
max_score = total_score;
highest_id = i;
}
}
```
6. 输出结果。
```c
printf("总分最高的学生学号是:%d,总分为:%d\n", highest_id + 1, max_score);
```
阅读全文