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.
我不知道怎么解决,请大神帮一下忙 展开
#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.
我不知道怎么解决,请大神帮一下忙 展开
3个回答
展开全部
struct student *p1, *p2;
//定义了两个student
的指针;
p1=p2=(struct student*)mal1oc(LEN);//分配给他们内存空间;也就是新建了节点;
这样p1就指向一个student的节点,这个节点上面有两个成员;
所以它们可以使用student的成员。
//定义了两个student
的指针;
p1=p2=(struct student*)mal1oc(LEN);//分配给他们内存空间;也就是新建了节点;
这样p1就指向一个student的节点,这个节点上面有两个成员;
所以它们可以使用student的成员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p1=p2=(struct
student*)mal1oc(LEN);
这句话的意思就是开辟一个指向student结构的内存空间,它的意思相当于int
n;
定义完之后当然可以使用了
student*)mal1oc(LEN);
这句话的意思就是开辟一个指向student结构的内存空间,它的意思相当于int
n;
定义完之后当然可以使用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询