解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
int no; //序号
int score; // 分数
struct LNode *next; //节点尾指针,指向下一节点的地址,必须定义
}LNode;
LNode *create(int x){ //创建链式线性表,因为返回的是指针类型,所以要用到 *
LNode *p,*s,*h;
int i;
h=(LNode *)malloc(sizeof(LNode)); //申请一个表头节点,并对其进行初始化
h->score=0;
h->next=NULL;
p=h;
for(i=0;i<x;i++){
s=(LNode *)malloc(sizeof(LNode)); //采用尾插法建立单链表,s为开始节点
s->next=NULL;
scanf("%d%d",&s->no,&s->score);
p->next=s;
p=s;
}
return h;
}
int main(){
LNode *h0,*h1,*h2,*h3,*b;
int M,N,i,j,a[100],t;
scanf("%d %d",&M,&N);
h0=create(M);
h2=h0;
h3=h0;
h1=create(N);
for(i=0;i<M;i++)
h0=h0->next;
h0->next=h1->next;
for(i=0;i<M+N;i++){
h2=h2->next;
a[i]=h2->no;
}
for(i=0;i<M+N-1;i++){ //利用选择排序法对序号进行排序,当然也可以用其他排序方法
for(j=i+1;j<M+N;j++)
if(a[j]<a[i]){
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
for(i=0;i<M+N;i++){
b=h3->next;
for(j=0;j<M+N;j++){
if(b->no==a[i])
printf("%d %d\n",a[i],b->score); //按照序号由小大大依次输出
b=b->next;
}
}
return 0;
}
0.0分
0 人评分
C语言训练-谁家孩子跑最慢* (C语言代码)浏览:1530 |
母牛的故事 (C语言代码)浏览:774 |
C语言程序设计教程(第三版)课后习题11.11 (C语言代码)浏览:800 |
C语言程序设计教程(第三版)课后习题6.3 (Java代码)浏览:687 |
C语言训练-数字母 (C语言代码)浏览:602 |
求圆的面积 (C语言代码)浏览:1358 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:719 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:753 |
WU-链表数据求和操作 (C++代码)浏览:1367 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:264 |