#include "stdio.h"#include<malloc.h>#include<string.h>#include<ctype.h>#define LEN struct studentstruct student{ long num; float score; struct student*next;};struct student*create(){ char ch; struct student *head; struct student*p1,*p2; int a=0; printf("是否输入新数据:\n"); while(toupper(ch=getchar())=='Y') { p1=(LEN*)malloc(sizeof(LEN)); printf("num:"); scanf("%ld",&(*p1).num); printf("score:"); scanf("%d",&(*p1).score); getchar();//getchar吸收回车 printf("是否输入新数据:\n"); a++; if(a==1) head=p1; else (*p2).next=p1; p2=p1; p1->next=NULL; } return(head);}struct student * insert(struct student * head){ struct student *p0,*p1,*p2; p0=(struct student * )malloc(sizeof(LEN)); printf("\n输入所要插入节点的数据:"); scanf("%ld,%f",&p1->num,&p1->score); p1=head; if(head==NULL) { head=p0; p0->next=NULL; } else if(p1->num>p0->num) { p0->next=head; head=p0; } else { while(p1!=NULL) { if(p1->num<p0->num) { p2=p1; p1=p1->next; } else { p0->next=p1; p2->next=p0; break; } } if(p1->next==NULL) { p0->next=NULL; p2->next=p0; } } return(head); }void print(struct student *head){ struct student *p; p=head; while(p!=NULL) { printf("\n学生学号:%d,成绩:%4.1f",p->num,p->score);//只是一个名 p=p->next;//测试随便输 }}void main( ){ struct student *stu; stu=create(); stu=insert(stu); print(stu);}
1 回答
- 1 回答
- 0 关注
- 1348 浏览
添加回答
举报
0/150
提交
取消