一个班有60人,输入10个人名字,学号,年纪,并保存到顺序表中用C语言表示
时间: 2024-09-26 11:10:34 浏览: 22
在C语言中,我们可以使用结构体来存储学生的信息,如名字、学号和年纪,然后通过动态内存分配创建顺序表(数组或链表)。这里我们假设使用数组来简化示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 10
typedef struct {
char name[50]; // 假设最大名字长度为49字节,留一格给'\0'
int student_id;
int age;
} Student;
// 动态分配并初始化顺序表
void add_student(Student** students, char* name, int id, int age) {
if (*students == NULL || MAX_STUDENTS - 1 == (*students)->next) { // 检查是否需要扩容
*students = (Student*) realloc(*students, sizeof(Student) * (MAX_STUDENTS *= 2));
}
Student* new_student = (*students) + (*students)->next; // 获取下一个位置
strcpy(new_student->name, name);
new_student->student_id = id;
new_student->age = age;
new_student->next = (*students)->next; // 更新指针
(*students)->next++; // 移动到下一个元素
}
int main() {
Student* students = (Student*) malloc(sizeof(Student)); // 初始大小为1
students->next = 0;
for (int i = 0; i < 10; i++) {
char name[50];
int id, age;
printf("请输入第%d位同学的名字、学号和年龄:", i+1);
scanf("%s %d %d", name, &id, &age);
add_student(&students, name, id, age); // 添加学生信息
}
return 0;
}
```
在这个示例中,`add_student`函数用于添加新的学生数据到顺序表中。注意实际应用中可能需要处理输入错误以及内存管理。