62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
#include <stdio.h>
|
||
void sort(int *start, int length);
|
||
void swap(int *a, int *b);
|
||
|
||
int main() {
|
||
int a[10], b[10], result[20];
|
||
int *aIndex = a, *bIndex = b, *resultIndex = result;
|
||
for (aIndex = a; aIndex < a+10; aIndex++) {
|
||
scanf("%d", aIndex);
|
||
}
|
||
for (bIndex = b; bIndex < b + 10; bIndex++) {
|
||
scanf("%d", bIndex);
|
||
}
|
||
aIndex = a;
|
||
bIndex = b;
|
||
sort(a, 10);
|
||
sort(b, 10);
|
||
aIndex = a;
|
||
bIndex = b;
|
||
while (resultIndex < result + 20) {
|
||
if (*aIndex <= *bIndex || bIndex > b + 9) {
|
||
// aIndex不能越界,要改
|
||
*resultIndex = *aIndex;
|
||
aIndex++;
|
||
}
|
||
else if (*bIndex < *aIndex || aIndex > a + 9) {
|
||
*resultIndex = *bIndex;
|
||
bIndex++;
|
||
}
|
||
resultIndex++;
|
||
}
|
||
resultIndex = result;
|
||
while (resultIndex < result+20) {
|
||
printf("%d ", *resultIndex);
|
||
resultIndex++;
|
||
}
|
||
printf("\n");
|
||
return 0;
|
||
}
|
||
|
||
void sort(int *start, int length) {
|
||
int moved = 1;
|
||
int *index = start;
|
||
while (moved) {
|
||
moved = 0;
|
||
index = start;
|
||
while (index < start + length - 1) {
|
||
if ( *index > *(index + 1)) {
|
||
moved = 1;
|
||
swap(index, index+1);
|
||
}
|
||
index++;
|
||
}
|
||
}
|
||
}
|
||
|
||
void swap(int *a, int *b) {
|
||
int tmp;
|
||
tmp = *a;
|
||
*a = *b;
|
||
*b = tmp;
|
||
} |