如何在C语言中设计和实现一个数据结构来存储并查询学生的学号,姓名,成绩1 成绩2
时间: 2024-09-22 18:02:44 浏览: 58
在C语言中,你可以通过定义一个结构体(struct)来创建一个数据结构,用于存储学生的信息,包括学号、姓名和两门成绩。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 用于动态内存分配
// 定义学生信息的结构体
typedef struct {
int student_id; // 学生学号
char name[50]; // 学生姓名
float score1; // 成绩1
float score2; // 成绩2
} Student;
// 动态分配结构体内存
Student* create_student(int id, const char* name, float score1, float score2) {
Student* new_student = (Student*) malloc(sizeof(Student));
if (new_student) {
new_student->student_id = id;
strncpy(new_student->name, name, sizeof(new_student->name) - 1); // 防止溢出
new_student->score1 = score1;
new_student->score2 = score2;
}
return new_student;
}
// 查询学生的特定信息
void search_student(const Student* student, int id) {
if (student && student->student_id == id) {
printf("学号:%d, 姓名:%s, 成绩1:%f, 成绩2:%f\n",
student->student_id, student->name, student->score1, student->score2);
} else {
printf("未找到该学生.\n");
}
}
int main() {
// 创建一个新的学生实例
Student* student1 = create_student(1001, "张三", 90.0, 85.0);
// 查询学生信息
search_student(student1, 1001);
// 释放内存
free(student1);
return 0;
}
```
在这个例子中,我们首先定义了一个`Student`结构体,然后创建了`create_student`函数来初始化新的学生记录,并用`search_student`函数来检索特定学号的学生信息。记得在程序结束时释放动态分配的内存。
阅读全文