本帖最后由 wananzuiqingfen 于 2021-12-26 10:09 编辑 #include <stdio.h>
#include <stdlib.h>
#define NAME_LEN 25 // 名字字符串长度
int main(void)
{
int i, j;
struct date {
int year;
int month;
int day;
};
struct stu {
char name[NAME_LEN+1];
int age;
int number;
struct date birthdayDate;
struct stu *next;
};
struct stu *first = NULL; // 链表首结点
printf("要插入几位学生: ");
scanf("%d", &j);
printf("\n");
for(i = 0; i < j; i++)
{
struct stu *new_node; // 新结点
new_node = malloc(sizeof(struct stu)); // 分配内存
if (new_node == NULL) {
printf("内存分配失败");
exit(EXIT_FAILURE);
}
printf("请输入学生姓名: ");
scanf("%s", &new_node->name);
printf("请输入学生年龄: ");
scanf("%d", &new_node->age);
printf("请输入学生学号: ");
scanf("%d", &new_node->number);
printf("请输入学生生日: ");
scanf("%4d-%2d-%2d", &new_node->birthdayDate.year,
&new_node->birthdayDate.month, &new_node->birthdayDate.day);
printf("\n\n");
new_node->next = first;
first = new_node;
}
for (; first != NULL; first = first->next) {
printf("学生姓名: %s\n学生年龄: %d\n学生学号: %d\n学生生日: %d-%d-%d\n",
first->name, first->age, first->number,
first->birthdayDate.year, first->birthdayDate.month, first->birthdayDate.day);
printf("\n");
}
}
输出:要插入几位学生: 3
请输入学生姓名: pig
请输入学生年龄: 18
请输入学生学号: 1
请输入学生生日: 2021-12-26
请输入学生姓名: dog
请输入学生年龄: 19
请输入学生学号: 2
请输入学生生日: 2021-12-27
请输入学生姓名: Jeck
请输入学生年龄: 20
请输入学生学号: 3
请输入学生生日: 2021-12-28
学生姓名: Jeck
学生年龄: 20
学生学号: 3
学生生日: 2021-12-28
学生姓名: dog
学生年龄: 19
学生学号: 2
学生生日: 2021-12-27
学生姓名: pig
学生年龄: 18
学生学号: 1
学生生日: 2021-12-26
|