📄 tc23-4.c
字号:
/*****************
tc23-4.c
信息记录
******************/
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct Student /* 定义链表结构 */
{
int num;
char name[8];
struct Student * next;
} Stud;
void main( )
{
Stud * head,* q,* s; /* 定义链表指针 */
Stud newstd;
head=NULL; /* 初始化头指针 */
printf(" 学生信息记录\n");
/*下面部分代码将创建空链表*/
head=malloc(sizeof(Stud)); /* 为头结点分配存储空间*/
if(head==NULL) /* 确保链表成功建立,并返回相应信息*/
{
printf("没有足够内存空间!\07\n");
return; /*退出程序*/
}
head->next=NULL; /* 头结点指针域初始化 */
head->num=0; /* 学号初始化 */
/*下面部分代码将在链表中插入数据*/
q=head;
do{
printf("学号(输入0 结束):"); /*输入新学生数据*/
scanf("%d",&newstd.num);
if(newstd.num==0) /* 当输入0时终止循环 */
break;
printf("姓名:");
scanf("%s",newstd.name);
s=malloc(sizeof(Stud)); /* 为新结点分配存储空间 */
if(s==NULL)
{
printf("没有足够内存空间!\07\n"); /* 插入失败*/
break;
}
/*将新结点s加入到链表尾,并修改表尾的指针*/
strcpy(s->name,newstd.name); /*将姓名存入新结点*/
s->num =newstd.num; /*将学号存入新结点*/
s->next=NULL; /*设新结点的指针域为空*/
q->next=s; /*将新结点连接到链表尾*/
q=s; /*链表尾结点后移*/
}while(1);
printf("结点已插入,链表创建成功。\n");
/*下面代码用于浏览链表*/
q=head->next; /*初始化指针*/
while(q!=NULL) /*未到链表尾时循环*/
{
printf("学号:%d 姓名:%s\n",q->num,q->name);
q=q->next; /*移动指针*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -