后续我会适当更新,但不会深入更新。主要是改些BUG,这个demo适合初学者借鉴,但不要学习:用了太多goto了!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
unsigned int *num;
char *str;
}Buf ;
Buf buf;
struct S
{
unsigned int xh;//学号
char xm[20];//姓名
unsigned int score;//成绩
struct S *next;
}*h_sj,*p1,*p2;
#define S_size sizeof(struct S)
unsigned int jd_num=1;//节点数
unsigned int n_control=0;
struct S*sj(unsigned int x)//x作用是控制功能0初始化1正常使用
{
if(x==0)//创建初始节点,此节点不会被使用
{
p1=(struct S*)malloc(S_size);
p2=p1;h_sj=p1;
sscanf("0 # 0","%d %s %d",&p2->xh,&p2->xm,&p2->score);
}
else//创建用于储存数据的节点
{
p1=(struct S*)malloc(S_size);
p2->next=p1;
p2=p1;
p2->next=NULL;
}
return p2;
}
int sr()//输入函数
{
do
{
if(fgets(buf.str,20,stdin)!=NULL)
{
break;
}
else
printf("输入有误,请从新输入:");
}