c语言把如下两个无序数组a和b从小到大排序后,在按照从小到大的顺序一次存放到新的数组中。 int a[5]={9,78,33,12,23}; int b[8]={1,34,63,10,5,94,39,27}; **输出格式要求:"%4d"
时间: 2023-10-02 15:05:35 浏览: 181
c语言合并两个已排序数组的示例(c语言数组排序)
5星 · 资源好评率100%
"erging result: "
首先,我们需要将数组a和b从小到大排序,可以使用冒泡排序或者快速排序等算法。这里我使用冒泡排序,代码如下:
```c
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int a[5] = {9, 78, 33, 12, 23};
int b[8] = {1, 34, 63, 10, 5, 94, 39, 27};
int len_a = sizeof(a) / sizeof(a[0]);
int len_b = sizeof(b) / sizeof(b[0]);
bubble_sort(a, len_a);
bubble_sort(b, len_b);
int merged[len_a + len_b];
int i = 0, j = 0, k = 0;
while (i < len_a && j < len_b) {
if (a[i] < b[j]) {
merged[k++] = a[i++];
} else {
merged[k++] = b[j++];
}
}
while (i < len_a) {
merged[k++] = a[i++];
}
while (j < len_b) {
merged[k++] = b[j++];
}
printf("Merging result: ");
for (i = 0; i < len_a + len_b; i++) {
printf("%d ", merged[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Merging result: 1 5 9 10 12 23 27 33 34 39 63 78 94
```
注意,这里我们创建了一个新数组merged来存放排序后的结果,最后再进行输出。
阅读全文