View Code of Problem 83

#include<stdio.h>
typedef struct info {
	int xh;
	int grade;
}info;
int main() {
	info x[100], tep, x2[100],x3[100];
	int n, m, i, j, min, k, f,xb;
	scanf("%d %d", &n, &m);
	for (i = 0; i < n; i++) {
		scanf("%d %d", &x[i].xh, &x[i].grade);
	}
	for (i = 0; i < n - 1; i++) {
		min = x[i].xh;
		f = 0;
		for (j = i + 1; j < n; j++) {
			if (x[j].xh < x[i].xh) {
				min = x[j].xh;
				f = 1;
				k = j;
			}
		}
		if (f == 1) {
			tep = x[i];
			x[i] = x[k];
			x[k] = tep;
		}
	}
	for (i = 0; i < m; i++) {
		scanf("%d %d", &x2[i].xh, &x2[i].grade);
	}
	for (i = 0; i < m - 1; i++) {
		min = x2[i].xh;
		f = 0;
		for (j = i + 1; j < m; j++) {
			if (x2[j].xh < x2[i].xh) {
				min = x2[j].xh;
				f = 1;
				k = j;
			}
		}
		if (f == 1) {
			tep = x2[i];
			x2[i] = x2[k];
			x2[k] = tep;
		}
	}
	xb=0;
	i=0;j=0;
	while(i!=n&&j!=m){
		if(x[i].xh<x2[j].xh){
			x3[xb++]=x[i];
			i++;
		}else{
			x3[xb++]=x2[j];
			j++;
		}
	}
	if(i==n){
		for(k=j;k<m;k++){
			x3[xb++]=x2[k];
		}
	}
	if(j==m){
		for(k=i;k<n;k++){
			x3[xb++]=x[k];
		}
	}
	for(i=0;i<m+n;i++){
		printf("%d %d\n",x3[i].xh,x3[i].grade);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 83