一个班有60人,输入10个人名字,学号,年纪,并保存到顺序表中用c语言
时间: 2024-09-25 17:11:46 浏览: 40
在C语言中,要实现这个功能,你可以创建一个结构体来存储学生的姓名、学号和年龄,然后使用数组或动态内存分配(如链接列表)来存储这10位学生的信息。这里我们演示如何使用一维数组,因为顺序表通常是指线性数据结构。
首先,定义一个包含姓名、学号和年龄的结构体:
```c
#include <stdio.h>
#include <string.h> // 需要包括这个头文件才能使用strlen函数
typedef struct {
char name[50];
int student_id;
int age;
} Student;
int main() {
const int MAX_STUDENTS = 10; // 最大学生数
Student students[MAX_STUDENTS]; // 存储学生信息的数组
int count = 0; // 记录实际添加的学生数量
printf("请输入学生信息(格式:姓名空格学号空格年纪,直到输入'结束'):\n");
while (count < MAX_STUDENTS) {
char input_name[51] = {0}; // 临时字符串用于接收输入
fgets(input_name, sizeof(input_name), stdin); // 读取一行输入
if (strcmp(input_name, "结束") == 0) break; // 如果输入"结束"则停止循环
char *endptr;
int id = strtol(input_name, &endptr, 10); // 解析学号
if (*endptr == '\n' && endptr != input_name) { // 检查是否成功解析
strncpy(students[count].name, input_name, strlen(input_name)); // 将姓名复制到结构体
students[count].student_id = id;
students[count].age = atoi(endptr + 1); // 紧跟学号后面的数字即为年龄
count++;
} else {
printf("无效输入,请按照格式输入。\n");
}
}
// 输出所有学生信息
for (int i = 0; i < count; i++) {
printf("学生 %d 的信息: 姓名:%s, 学号:%d, 年纪:%d\n", i+1, students[i].name, students[i].student_id, students[i].age);
}
return 0;
}
```
阅读全文