C语言编程 编写程序,建立一个学生数据链表,学生的数据包括学号、姓名、成绩。
1个回答
展开全部
#include<stdio.h>
#include<malloc.h>
#define NULL 0
struct stud
{
int no;
char name[12];
int age;
struct stud*next;
};
#define LEN sizeof(struct stud)
struct stud*creat(void)
{
struct stud*p1,*p2,*head;
int n=0;
p1=(struct stud*)malloc(LEN);
scanf("%d%s%d",&p1->no,p1->name,&p1->age);
while(p1->no>0){
n++;
if(n==1){head=p1;p2=p1;}
else{p2->next=p1;p2=p1;}
p1=(struct stud*)malloc(LEN);
scanf("%d",&p1->no);
if(p1->no==0)break;
scanf("%s%d",p1->name,&p1->age);
}
p2->next=NULL;
return head;
}
void main()
{
struct stud*del(struct stud*head,int no);
int num;
struct stud*p,*p0;
p0=creat();
scanf("%d",&num);
p=del(p0,num);
print(p);
}
struct stud*del(struct stud*head,int num)
{
struct stud *p1,*p2;
p1=head;
while(p1->next!=NULL){
if(p1->no==num) break;
p2=p1;
p1=p1->next;
}
if(p1==head){
p1->next=head;
}
else {
p2->next=p1->next;
}
return head;
}
#include<malloc.h>
#define NULL 0
struct stud
{
int no;
char name[12];
int age;
struct stud*next;
};
#define LEN sizeof(struct stud)
struct stud*creat(void)
{
struct stud*p1,*p2,*head;
int n=0;
p1=(struct stud*)malloc(LEN);
scanf("%d%s%d",&p1->no,p1->name,&p1->age);
while(p1->no>0){
n++;
if(n==1){head=p1;p2=p1;}
else{p2->next=p1;p2=p1;}
p1=(struct stud*)malloc(LEN);
scanf("%d",&p1->no);
if(p1->no==0)break;
scanf("%s%d",p1->name,&p1->age);
}
p2->next=NULL;
return head;
}
void main()
{
struct stud*del(struct stud*head,int no);
int num;
struct stud*p,*p0;
p0=creat();
scanf("%d",&num);
p=del(p0,num);
print(p);
}
struct stud*del(struct stud*head,int num)
{
struct stud *p1,*p2;
p1=head;
while(p1->next!=NULL){
if(p1->no==num) break;
p2=p1;
p1=p1->next;
}
if(p1==head){
p1->next=head;
}
else {
p2->next=p1->next;
}
return head;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询