用c语言定义一个包含学生信息的顺序表
时间: 2024-10-09 19:02:53 浏览: 32
在 C 语言中,我们可以定义一个结构体(struct)来表示学生的信息,然后创建一个动态数组(即顺序表)来存储这些结构体。首先,我们需要定义一个名为 `Student` 的结构体,包含学生的姓名、学号等属性:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息结构体
typedef struct {
char name[50]; // 学生姓名
int id; // 学号
float score; // 成绩
} Student;
// 动态顺序列表
typedef struct List {
Student *data; // 存储学生数据的指针
int size; // 当前元素数量
int capacity; // 初始容量
} List;
// 初始化顺序表
void initList(List *list) {
list->data = NULL;
list->size = 0;
list->capacity = 10; // 设置初始容量为10
}
// 添加学生到顺序表
void addStudentToList(List *list, const Student *student) {
if (list->size == list->capacity) {
// 扩大表容量
list->capacity *= 2;
list->data = realloc(list->data, sizeof(Student) * list->capacity);
}
list->data[list->size++] = *student;
}
// 打印顺序表中的学生信息
void printList(const List *list) {
for (int i = 0; i < list->size; i++) {
printf("姓名: %s, 学号: %d, 成绩: %.2f\n", list->data[i].name, list->data[i].id, list->data[i].score);
}
}
// 示例相关问题:
阅读全文