崩溃了那里错了

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:16:11
#define NULL 0
#define LEN sizeof(struct student)
struct student
{int num;
char name[5];
struct student *next;
}a[3],b[3];
main()
{struct student *head1,*head2,*p1,*p2,*p;
struct student a[3]={{001,"dsa"},{002,"faw"},{004,"da"}};
struct student b[3]={{005,"da"},{006,"dsa"},{002,"das"}};
int i,j,k;
head1=a;
head2=b;
p1=head1;
for(i=1;i<=3;i++)
{if(i<3) p1->next=a+i;
else p1->next=NULL;
printf("%d %s\n",p1->num,p1->name);
if(i<3) p1=p1->next;
}
printf("\n");
p2=head2;
for(i=1;i<=3;i++)
{if(i<3) p2->next=b+i;
else p2->next=NULL;
printf("%d %s\n",p2->num,p2->name);
if(i<3) p2=p2->next;
}
p1=p=head1;
while(p1!=NULL)
{p2=head2;
while(p1->num!=p2->num&&p2!=NULL)
p2=p2->next;

while(p1->num!=p2->num&&p2!=NULL)
改成while(p2!=NULL && p1->num!=p2->num)

虽然单句的可以不用括号,但是建议用括号,使程序清晰易懂

你这个struct的用法很奇怪,next或者用数组,只要一个就行了在你程序里面

分数太低,不想刷