#include
#include
#include
struct grades {
char num[100];
char name[100];
int math,chinese,english;
struct grades *next;
}join,teample;
typedef struct grades Grades,*GRADES;
int main() {
int n = 0,i = 0,res,flag = 0;
int chinese = 0,english = 0,math = 0;
char num[100],name[100];
GRADES head,p,join;
head = p = (GRADES)malloc(sizeof(Grades));
scanf("%d",&n);
for(i = 0;i < n;i++) {
scanf("%s",num);
scanf("%s",name);
scanf("%d%d%d",&math,&chinese,&english);
p->next = (GRADES)malloc(sizeof(Grades));
strcpy(p->next->num,num);
strcpy(p->next->name,name);
p->next->math = math;
p->next->chinese = chinese;
p->next->english = english;
p = p->next;
}
p->next = NULL;
//至此,链表创建完毕
join = (GRADES)malloc(sizeof(Grades));
scanf("%s",join->num);
scanf("%s",join->name);
scanf("%d%d%d",&join->math,&join->chinese,&join->english);
p = head;
while(p->next) {
res = strcmp(p->next->num,join->next->num);
if(res == 0) {
printf("error(重复的学号)!\n");
return 1;
}
else if(res > 0) {
join->next = p->next;
p->next = join;
flag = 1;
break;
}
else p = p->next;
}
if(flag == 0) {//插到链表尾部
join->next= NULL;
p->next = join;
flag = 1;
}
//if(flag == 0) printf("SOORY,Insert过程未完成!\n");
p = head->next;
while(p) {
printf("%s ",p->num);
printf("%s ",p->name);
printf("%d ",p->math);
printf("%d ",p->chinese);
printf("%d\n",p->english);
p = p->next;
}
return 0;
}