C语言 动态链表的问题

程序:#include<stdio.h>#include<malloc.h>#defineLENsizeof(structstudent)structstudent{lo... 程序:
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};
int n;
struct student *creat()
{
struct student *head,*p1,*p2;
p1=p2=(struct student*)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
head=NULL;
n=0;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
}
p2->next=NULL;
return (head);
}
void print(struct student head)
{
struct student *p;
printf("\nNow,These %d record are:\n",n);
p=head;
if(head!=NULL)
do
{
printf("%ld,%5.1f",p->num,p->score);
p=p->next;
}
while(p!=NULL);
}
void main()
{
struct student *head;
head=creat();
print(head);

}
这些都是按照书上写的,结果出现了下面问题:
F:\C Program demo\demo76.c(36) : error C2115: '=' : incompatible types
F:\C Program demo\demo76.c(37) : error C2088: '!=' : illegal for struct
F:\C Program demo\demo76.c(49) : error C2115: 'function' : incompatible types
F:\C Program demo\demo76.c(49) : warning C4024: 'print1' : different types for formal and actual parameter 1
Error executing cl.exe.
我不知道怎么解决,请大神帮一下忙
展开
 我来答
wuiiao333
2014-12-01 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:201万
展开全部
void print(struct student head)
这个函数定义里的head是个指针。所以你的形参也要定义为struct student *head
硕锐智广央
2019-09-25 · TA获得超过3万个赞
知道大有可为答主
回答量:9978
采纳率:35%
帮助的人:901万
展开全部
struct student *p1, *p2;
//定义了两个student
的指针;
p1=p2=(struct student*)mal1oc(LEN);//分配给他们内存空间;也就是新建了节点;
这样p1就指向一个student的节点,这个节点上面有两个成员;
所以它们可以使用student的成员。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程迎丝化绍
撸铁爱好者

2019-12-13 · 管理身体,健康生活
知道小有建树答主
回答量:1.1万
采纳率:30%
帮助的人:649万
展开全部
p1=p2=(struct
student*)mal1oc(LEN);
这句话的意思就是开辟一个指向student结构的内存空间,它的意思相当于int
n;
定义完之后当然可以使用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式