#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MAXSIZE 100
typedef struct{
char number[11];//学号
char name[20];//姓名
int score;//成绩
}Student;
typedef struct LNode{
Student data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
/*
操作目的:初始化链表
初始条件:无
操作结果:构造一个空的线性表
函数参数:LinkList *L
返回值:
*/
void creatlist(LinkList &L)
{
L=(LNode*)malloc(sizeof(LNode));
L->next=NULL;
}
/*
操作目的:输入学生信息
初始条件: 空的线性表
操作结果: 根据指定学生个数,逐个输入学生信息
函数参数: LinkList *L
返回值:
*/
void inputlist(LinkList &L)
{
LinkList p;
p=(LNode*)malloc(sizeof(LNode));
scanf("%s %s %s",&p->data.name,&p->data.number,&p->data.score);
p->next=L->next;
L->next=p;
}
/*
操作目的: 逐个显示学生表中所有学生的相关信息
初始条件:线性表
操作结果:逐个输出线性表
函数参数:LinkList *L
返回值:
*/
void printLinklist(LinkList &L)//输出链表
{
LNode *p;
p = L->next;
while (p!=NULL)
{
printf("%s %s %s\n",p->data.name,p->data.number,p->data.score);
p = p->next;
}
printf("\n");
}
//void searchlist(LinkList &L,);
int main()
{
LinkList L;
creatlist(L);//创建空表
printf("请输入想要输入学生信息的数目: \n");//录入学生信息
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
printf("正在输入第%d位学生的信息: \n",i);
inputlist(L);
}
printf("以下为已录入学生信息:\n");//输出学生信息
printLinklist(L);//输出链表
return 0;
}
第47行
//scanf("%s %s %s",&p->data.name,&p->data.number,&p->data.score);
scanf("%s %s %d",p->data.name,p->data.number,&p->data.score);
第67行
//printf("%s %s %s\n",p->data.name,p->data.number,p->data.score);
printf("%s %s %d\n",p->data.name,p->data.number,p->data.score);