链表初步创建,求前辈指教!
创建一个链表后,当指定找到num为0 时结束,为何我先输入num,后输入name时 可以,而先输入name ,后输入num时却不能正常结束呢?#include<stdio.h>
#define LEN sizeof(struct Node)
#define NULL 0
#include<malloc.h>
typedef struct Node
{
int num ;
char name[20] ;
struct Node *pnext ;
}STU;
STU *creat()
{
STU *head ;
STU *p1,*p2 ;
int N = 0 ;
head = NULL ;
p1 = p2 = (STU*)malloc(LEN) ;
scanf("%s,%d",&p1->name,&p1->num) ;//此句为何不能正常结束?为什么我改成scanf("%d,%s",&p1->num,&p1->name);时可以 正常结束呢?
while(p1->num !=NULL) //难道是这里的原因吗,求解!
{
N += 1 ;
if(N == 1)
head = p1 ;
else
p2->pnext = p1 ;
p2 = p1 ;
p1 = (STU*)malloc(LEN) ;
scanf("%s,%d",&p1->name ,&p1->num) ; }
p2->pnext = NULL ;
return (head) ;
}
int main(void)
{
STU *stu ;
stu = creat() ;
return 0 ;
}