求改进,求解释 !!
程序代码:#include <stdio.h>
#include <malloc.h>
typedef struct node{
int data;
struct node *link;
}NODE;
int main(void){
NODE *head;
NODE *p;
int n=3;
create(head,n);
print_str(head);
getch();
return 0;
}
create(NODE *head,int n){
int a=1;
NODE *p;
for(;n>0;--n,a++){
printf("Pleas Enter %d NUM:",a);
p=(NODE *)malloc(sizeof(NODE));
if(p==NULL)
exit(0);
scanf("%d",&p->data);
p->link=head->link;
head->link=p;
}
}
print_str(NODE *head){
NODE *p;
p=head->link;
while(p){
printf("%d\n",p->data);
p=p->link;
}
}
输入 3 2 1 输出1 2 3 21504 0 ;
貌似我想要的结果不是这样的
亲们 求解释



