解题思路:
注意事项:
参考代码:
#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 人评分
A+B for Input-Output Practice (II) (C语言代码)浏览:651 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:1826 |
用筛法求之N内的素数。 (C++代码)浏览:602 |
【蟠桃记】 (C++代码)(递归计算)浏览:948 |
【亲和数】 (C语言代码)浏览:846 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:552 |
C语言训练-数字母 (C语言代码)浏览:649 |
WU-整除问题 (C++代码)浏览:604 |
DNA (C语言描述,数据结构)浏览:848 |
【金明的预算方案】 (C++代码)浏览:837 |