链表问题操作。。。速求解
每次输入学生资料后,程序就直接退出了。不知道什么原因。。。。。。求解#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0
#define CHEN struct student
#define FEI sizeof(struct student)
struct student
{
int age;
char *name;
char *sex;
struct student *next;
};
CHEN *creat(int n)
{
CHEN *head,*q,*p;
int i;
for(i=0;i<n;i++)
p=(CHEN *)malloc(FEI);
printf("请输入学生的资料!\n");
scanf("%d,%s,%s",&p->age,p->name,p->sex);
if(head==NULL)
{
head=q=p;
}
else
{
q->next=p;
p->next=NULL;
q=p;
}
return(head);
}
CHEN *insert(CHEN *head,CHEN *j)
{
CHEN *q,*p;
q=head;
if(head==NULL)
{
j=head;
j->next=NULL;
}
else
{
while((j->age>q->age)&&(q->next!=NULL))
{
if(j->age>q->age)
{
j->next=p;
q->next=j;
q=j;
}
}
}
return(head);
}
void print(CHEN *head)
{
printf("学生资料如下\n");
printf("age\t\tname\t\tsex\n");
while(head!=NULL)
{
printf("%d\t\t%s\t\t%s\n",&head->age,head->name,head->sex);
head=head->next;
}
}
void main()
{
CHEN *head,*o;
int n,f;
printf("请输入结点个数\n!");
scanf("%d",&n);
head=creat(n);
print(head);
printf("请输入新学生的资料\n");
o=(CHEN *)malloc(FEI);
scanf("%d,%s,%s",&o->age,o->name,o->sex);
head=insert(head,o);
print(head);
}