输入应该没问题 但是没有输出 一到输出就结束了 为啥呢






#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);