#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct student
{int number;
struct student *next;
} NODE;
typedef struct student node;
typedef node *link;
link creatlist()
{
link head,p,q;
int a;
char ch;
head=(link)malloc(sizeof(struct student));
p=head;
printf("请输入相关学号:(以?结尾)/n");
while(ch!='?')
{q=(link)malloc(sizeof(struct student));
scanf("%d",&a);
q->number=a;
p->next=q;
p=q;
ch=getchar();
}
p->next=NULL;
return(head);
}
link add(link head,int a)
{int i,m; char ch; link ptr;
for(i=0;i<a;i++)
head=head->next;
printf("请输入要插入的学号(以?结尾):");
while(ch!='?')
{scanf("%d",&m);
ptr=(link)malloc(sizeof(struct student));
ptr->number=m;
ptr->next=head->next;
head->next=ptr;
head=ptr;
ch=getchar();
return 0;
}
}
void print(link head)
{head=head->next;
while(head!=NULL)
{printf("%5d",head->number);
head=head->next;
}
printf("\n") ;
}
int main()
{link a; int n;
a=creatlist();
print(a);
printf("请输入要插到第几项的项数:");
scanf("%d",n);
add(a,n);
printf("ok!");
print(a);
return 0;
}
当调用add的函数时显示停止工作,这段代码是为了建立一个链表和插入链表的实现。。求大神解答。。
ps:觉得麻烦的话不用改正,告诉我为什么会出现这种情况就行了。
在此拜谢orz