☆★☆ 发表于 2013-12-6 18:37:55

这个题有谁能告诉我哪里错了吗?

#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]
查看完整版本: 这个题有谁能告诉我哪里错了吗?