#include "malloc.h"
typedef struct student
{
int num;
char name[9];
float score[3];
struct student *next;
}Lnode;
#define LEN sizeof(struct student)
typedef Lnode *Llist;
Lnode *jianli(void)
{
int i;
Lnode *head=(Lnode *)malloc(LEN);
Llist p,r;
r=head;
do
{
p=(Lnode *)malloc(LEN);
printf("请输入学号: ");
scanf("%d",&p->num);
if(p->num==0)
break;
printf("请输入姓名: ");
scanf("%s",p->name);
printf("请输入3门成绩\n");
for(i=0;i<3;i++)
{
printf("成绩: ");
scanf("%f",&p->score[i]);
}
r->next=p;
r=p;
printf("\n\n");
}while(p->num!=0);
r->next=NULL;
return head;
}
请问我这个链表输入三门成绩的写法有什么错误.....
为什么一到输入成绩的时候就弹出错误信息..
我换成了不用循环读入三门成绩,,也出了错..
但是
当我写成这样的时候:
printf("成绩1");
scanf("%f",&(p->score[0]));
就不出错了,但是我就写这一句,下面有句并没有把p->score[]用()框起来...
迷惑了....请大家指点指点..