一个输入函数,输出函数,删除函数。不知道错哪里了
#include <stdio.h>
#include <stdlib.h>
#define S struct worker
#define LEN sizeof(struct worker)
struct worker
{
int num;
char name[10];
int pay;
S *next;
};
/******删除函数******/
S *del(S *head,int n)
{
S *p,*q;
p=q=head;
while(n!=p->num&&p->next!=0)
{
q=p; p=p->next;
}
if(n==p->num)
{
if(p==head) head=p->next;
else q->next=p->next;
}
free(p);
return head;
}
/******输入******/
S *input(void)
{
S *p,*q,*head;
p=q=head=(S*)malloc(LEN);
scanf("%d",&p->num);
getch();
scanf("%s",p->name);
getch();
scanf("%d",&p->pay);
while(1)
{
p=(S*)malloc(LEN);
scanf("%d",&p->num);
if(p->num==0) break;
getch();
scanf("%s",p->name);
getch();
scanf("%d",&p->pay);
q=p;
q->next=p;
}
return head;
}
/******输出******/
void out(S *p)
{
while(p!=0)
{
printf("%d %s %d\n",p->num,p->name,p->pay);
p=p->next;
}
}
/******主函数******/
main()
{
int n;
S *head;
head=input();
out(head);
printf("input n ");
scanf("%d",&n);
head=del(head,n);
out(head);
}