要编写一个输入学生学号、姓名、性别的程序,并以‘#’结束输入,然后输入学号删除该学号同学,要求使用单链表,求大神帮忙看看我的程序错在哪里?
#include<stdio.h>#include<stdlib.h>
#include<conio.h>
typedef char datatype;
struct student{
char num[10];
char name[10];
char sex[5];
};
typedef struct node{
struct student data;
struct node *next;
}linklist;
linklist *head;
linklist *creat(){
linklist *head,*r,*l;
head=NULL;
r=NULL;
while(1){
char ch;
l=(linklist*)malloc(sizeof(linklist));
scanf("%s%s%s",l->data.num,l->data.name,l->data.sex);
scanf("%c",ch);
if('ch'=='#')break;
if(head==NULL)head=l;
else r->next=l;
r=l;
}
if(r=NULL)r->next=NULL;
return head;
}
linklist *dele(linklist*head){
linklist *p,*s;
p=head;
s=(linklist*)malloc(sizeof(linklist));
scanf("%s",s->data.num);
while(p->next->data.num!=s->data.num){
p->next=p->next->next;
if(p->next=NULL)break;
}
if(p->next=NULL)printf("该学生不存在");
p->next=p->next->next;
return head;
}
linklist *print(linklist*head){
linklist *p;
p=head;
while(p!=NULL){
printf("%s%s%s",p->data.num,p->data.name,p->data.sex);
}
}
int main(){
linklist *l,*k;
l=creat();
k=dele(l);
print(k);
}