⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc23-4.c

📁 关于学习C语言的电子书籍
💻 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 + -