某小学某班级共有30名学生,共有5门课程,分别是英语、语文、数学、历史和音乐。请定义C语言结构体存储学生的姓名、性别、学号和5门课程的期末考试成绩。然后根据学号查找某学生,并将其5门课程成绩输入,该学生成绩分别是86分、74分、92分、77分、82分。
时间: 2024-09-09 08:00:59 浏览: 122
在C语言中,我们可以定义一个结构体(struct)来表示一名学生的信息,包括姓名、性别、学号以及五门课程的成绩。首先,我们创建一个结构体定义:
```c
typedef struct {
char name[50]; // 学生姓名
char gender; // 性别 ('M' 或 'F')
int student_id; // 学号
int scores[5]; // 课程成绩数组,每个元素对应一门课程
} Student;
```
接下来,我们可以定义一个函数来根据学号找到并更新学生的成绩:
```c
void set_student_scores(Student* students, int student_id, int* scores) {
for (int i = 0; i < 30; i++) { // 遍历所有学生
if (students[i].student_id == student_id) { // 找到对应的学号
for (int j = 0; j < 5; j++) { // 更新五门课程的成绩
students[i].scores[j] = scores[j]; // 将提供的成绩赋值给结构体
}
break; // 找到就停止搜索
}
}
}
```
然后,你可以创建一个`Student`类型的数组来存储所有学生的数据,并通过`set_student_scores`函数为特定的学生设置成绩:
```c
main() {
Student students[30]; // 初始化学生数组
int scores[] = {86, 74, 92, 77, 82}; // 提供的学生成绩
int target_id = 10; // 假设我们要找的学生学号为10
set_student_scores(students, target_id, scores);
// 现在students[target_id - 1].scores包含了对应学生的成绩信息
}
```
阅读全文