链表问题。。
程序没有写完有很多错的地方。。帮忙改改#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define CHEN struct student
#define FEI sizeof(struct student)
#define NULL 0
typedef struct student
{
int age;
char name[10];
char sex;
int score;
struct student *next;
}hong;
hong *creat(int *count);
hong *insert(hong *head);
hong *delet(hong *head);
hong *find(hong *dead);
void update(hong *head);
void print(hong *head);
void main()
{
hong *head=NULL,*p=NULL;
int n=0,count=0;
printf("链表的操作");
printf("请选择你的操作");
printf("1 创建链表");
printf("2 增加结点");
printf("3 删除结点");
printf("4 查找结点");
printf("5 改正结点");
printf("6 输出链表");
printf("7 退出系统");
//printf("8 链表排序");
//printf("9 链表逆序");
scanf("%d",&n);
getchar();
while(1)
{
if(n<1||n>9)
{
printf("你的输入有误,请重新输入\n");
scanf("%d",&n);
}
else
{
switch(n)
{
csae1:head=creat(&count);break;
case2:head=insert(head);break;
csae3:head=delet(head);break;
case4:update(head);break;
csae5:find(head);break;
csae6:print(head);break;
csae7:exit(0);
//csae8:
//csae9:
}
}
n=0;
printf("请继续你的操作\n");
scanf("%d",&n);
getchar();
printf("链表操作完成\n");
}
hong*creat(int *count)
{
char s='0';
hong *head=NULL,*p,*q;
while(1)
{
printf("是否要创建(y\n)");
scanf("%c",&s);
getchar();
if(s=='y'&&head==NULL)
{
p=(CHEN *hong)malloc(FEI *hong);
printf("请输入学生资料\n");
scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score);
p->next=NULL;
q->next=p;
q=p;
*count++
}
else if(s='n')
{
printf("链表结束\n");
break;
}
else if(s!='y'&&s!='n')
{
printf("输入错误\n");
}
}
return head;
}
hong *insert(hong *head)
{
int n=0;
hong *p=NULL,*q=NULL;
printf("请选择插入方式:1 链首插入,2 链尾插入,3 中间插入\n");
scanf("%d",&n);
if(n==1)
{
p=(CHEN *hong)malloc(FEI *hong);
printf("请输入学生资料\n");
scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
p->next=head;
head=p;
}
if(n==2)
{
//p=q=head;
if(p==NULL)
{
p=(CHEN *hong)malloc(FEI *hong);
printf("请输入学生资料\n");
scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
p->next=head;
head=p;
}
else
{
while(p!=NULL)
{
q=p;
p=p->next;
}
p=(CHEN *hong)malloc(FEI *hong);
printf("请输入学生资料\n");
scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
p->next=NULL;
q->next=p;
}
}
retrun head;
}