这个题有谁能告诉我哪里错了吗?
#include<stdio.h>#include<stdlib.h>
#define MAX 20
typedef struct menu
{
char name;
int no;
struct menu *next;
}List;
void Creat_List(List * &h)
{
List *p;//用于插入
List *r=h;//尾指针开始指向头指针
int i;
for(i=0;i<10;i++)
{
fflush(stdin);
p=(List *)malloc(sizeof(List));
printf("输入第%d位的姓名:",i+1);
gets(p->name);
printf("输入第%d位的学号:",i+1);
scanf("%d",&(p->no));
r->next = p;
r = p;
}
r->next = NULL;}
void Insert(List * &h)
{
List *p=h;//用于遍历链表
List *q;//用于插入
int k,i;
printf("输入插入的位置(1~10):");
scanf("%d",&k);
fflush(stdin);
q=(List *)malloc(sizeof(List));
printf("输入插入的姓名:");
gets(q->name);
fflush(stdin);
printf("输入插入的学号:");
scanf("%d",&(q->no));
for(i=0;i<k-1;i++)
p=p->next;
q->next = p->next;
p->next = q;
}
void Delete(List * &h)//删除第三个结点
{
List *p=h,*q;
int i;
for(i=0;i<2;i++)
p=p->next;
q = p->next;
p->next = q->next;
free(q);
}
void Disp(List * h)//输出链表
{
List *p=h->next;
printf("\t学号\t姓名\n");
while(p)
{
printf("%d\t%s\n",p->no,p->name);
p=p->next;
}
}
int main()
{
List * head;
head=(List *)malloc(sizeof(List));
Creat_List(head);
Insert(head);
Disp(head);
Delete(head);
Disp(head);
return 0;
}
页:
[1]