用C语言编程实现: 某小学某班级共有30名学生,共有5门课程,分别是英语、语文、数学、历史和音乐。请定义结构体存储学生的姓名、性别、学号和5门课程的期末考试成绩。然后根据学号查找某学生,并将其5门课程成绩输入,假设成绩分别是86分、74分、92分、77分、82分。
时间: 2024-09-08 17:01:54 浏览: 120
在C语言中,我们可以使用结构体(struct)来表示学生的信息,并定义一个数组来存储所有学生的数据。首先,我们定义一个结构体`Student`:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
char name[50]; // 学生姓名
char gender; // 性别('M' 或 'F')
int student_id; // 学号
int scores[5]; // 五门课程的成绩
} Student;
int main() {
// 定义学生总数和课程数
const int total_students = 30;
const int num_courses = 5;
// 创建一个学生数组,用于存放所有学生信息
Student students[total_students];
// 指定某个学生的信息,比如学生ID为1的学生
int target_student_id = 1;
float given_scores[] = {86, 74, 92, 77, 82}; // 分别对应五门课的成绩
// 查找并设置指定学生的成绩
for (int i = 0; i < total_students; i++) {
if (students[i].student_id == target_student_id) {
strncpy(students[i].name, "Target Student", sizeof(students[i].name)); // 设置姓名(这里仅为示例)
students[i].gender = 'M'; // 示例性别,实际项目中需要用户输入
students[i].student_id = target_student_id;
for (int j = 0; j < num_courses; j++) {
students[i].scores[j] = (int)given_scores[j]; // 将给定分数转换为整数存入结构体
}
break; // 找到目标学生后停止搜索
}
}
// 打印查询结果
printf("学生 %d 的信息:\n", target_student_id);
printf("姓名: %s\n", students[target_student_id - 1].name);
printf("性别: %c\n", students[target_student_id - 1].gender);
printf("课程成绩: ");
for (int j = 0; j < num_courses; j++) {
printf("%d ", students[target_student_id - 1].scores[j]);
}
printf("\n");
return 0;
}
```
在这个例子中,我们创建了一个包含学生姓名、性别、学号和成绩的`Student`结构体。然后,在主函数中,我们设置了特定学生ID为1的学生成绩。注意,这里的姓名字段未提供实际值,因为通常需要从用户那里获取。
阅读全文