解题思路:先合并,再排序
注意事项:
参考代码:
#include <stdio.h>
#include<string.h>
#include<malloc.h>
#define MaxSize 100
typedef struct StuNode{
int sno;
int score;
struct StuNode * next;
}StuNode,*StuList;
int main(){
int n,m;
scanf("%d %d",&n,&m);
StuList L1,L2,L3;
L1=(StuNode*)malloc(sizeof(StuNode));
L2=(StuNode*)malloc(sizeof(StuNode));
L3=(StuNode*)malloc(sizeof(StuNode));
L1->next=NULL;
L2->next=NULL;
L3->next=NULL;
StuNode *p1,*p2 ,*p3;
p1=L1;
p2=L2;
p3=L3;
//L1
for(int i=0;i<n;i++)
{
StuNode *stu=(StuNode*)malloc(sizeof(StuNode));
scanf("%d %d",&stu->sno,&stu->score);
stu->next=NULL;
p1->next=stu;
p1=p1->next;
}
//L2
for(int i=0;i<m;i++)
{
StuNode *stu=(StuNode*)malloc(sizeof(StuNode));
scanf("%d %d",&stu->sno,&stu->score);
stu->next=NULL;
p2->next=stu;
p2=p2->next;
}
//L3,未排序,只合并
p1=L1->next;p2=L2->next;
p3->next=p1;
while(p3->next) p3=p3->next;
p3->next=p2;
while(p3->next) p3=p3->next;
p3->next=NULL;
//L3 冒泡排序
StuNode *cul;
for(p3=L3->next;p3!=NULL;p3=p3->next){
for(cul=L3->next;cul->next!=NULL;cul=cul->next){
if(cul->sno>cul->next->sno){
int sno=cul->sno;
int score=cul->score;
cul->sno=cul->next->sno;
cul->score=cul->next->score;
cul->next->sno=sno;
cul->next->score=score;
}
}
}
//打印L3
p3=L3->next;
while(p3)
{
printf("%d %d\n",p3->sno,p3->score);
p3=p3->next;
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复