这个程序没有错误,可是不能运行,为什么啊?
这个程序的功能是:建立一个链表,输入元素并把它输出来!
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define ElemType int
#define out printf
typedef struct LNode{
ElemType date;
struct LNode *next;
}LNode,*linklist;
linklist creat(void){ //输入元素的单链表
linklist head;
linklist p,q;
p=(linklist) malloc(sizeof(struct LNode));
head=p=q;
if(!p) exit(0);
scanf("%d",&p->date);
p->next=NULL;
if(p->date==0){exit(0);}
while(p->date!=0){
p=(linklist) malloc(sizeof(struct LNode));
if(!p) {exit(0);}
scanf("%d",&p->date);
if(p->date==0)
{break;}
else
{
q->next=p;
q=p;
p->next=NULL;
}
}
return(head);
}
linklist print(linklist head){
linklist p;
for(p=head;p!=NULL;p=p->next){
out("\n%d",p->date);
}
return(head);
}
void main()
{
linklist head;
head=creat();
out("\n");
print(head);
}