哪位大哥 帮忙一下解决一下 输出怎么只有最后的那一个呢????
代码:# define NULL 0
# define CH sizeof(struct peo)
# include<stdio.h>
main()
{
struct peo
{
int num;
char name[20];
char sex;
struct peo *next;
};
struct peo *head,*p1,*p2,*p;
p1=p2=(struct peo *)malloc(CH);
scanf("%d,%s,%c",&p1->num,p1->name,&p1->sex);
p1->next=NULL;
while(p1->num!=0)
{ int n=0;
++n;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct peo *)malloc(CH);
scanf("%d,%s,%c",&p1->num,p1->name,&p1->sex);
p1->next=NULL;
}
free(p1);
p=head;
if(head!=NULL)
do{
printf("\n%d%s%c\n",p->num,p->name,p->sex);
p=p->next;
} while(p!=NULL);
getch();
}
输入两个人以上的 号数,名字,性别。
但结果总是只有最后面的那一个。 大哥些,,帮个忙嘛。。