用C语言输入两个整数数组,每个数组有5个整数,将二者进行合并,然后按照数值从小到大排序输出。 有两行输入,分别为第一个数组和第二个数组的元素赋值。每行输入中的每两个数值之间用空格分隔。
时间: 2023-06-16 14:01:59 浏览: 273
归并排序 输入所要排序的整数,进行排序,C语言
4星 · 用户满意度95%
以下是一个示例代码,可以实现输入两个整数数组、合并、排序、输出的功能:
```c
#include <stdio.h>
void merge_and_sort(int arr1[], int arr2[], int merged[], int size1, int size2) {
int i = 0, j = 0, k = 0;
while (i < size1 && j < size2) {
if (arr1[i] <= arr2[j]) {
merged[k++] = arr1[i++];
} else {
merged[k++] = arr2[j++];
}
}
while (i < size1) {
merged[k++] = arr1[i++];
}
while (j < size2) {
merged[k++] = arr2[j++];
}
// 对合并后的数组按数值从小到大排序
for (i = 0; i < size1 + size2 - 1; i++) {
for (j = i + 1; j < size1 + size2; j++) {
if (merged[i] > merged[j]) {
int temp = merged[i];
merged[i] = merged[j];
merged[j] = temp;
}
}
}
}
int main() {
int arr1[5], arr2[5], merged[10];
int i;
// 输入第一个数组
for (i = 0; i < 5; i++) {
scanf("%d", &arr1[i]);
}
// 输入第二个数组
for (i = 0; i < 5; i++) {
scanf("%d", &arr2[i]);
}
// 合并并排序
merge_and_sort(arr1, arr2, merged, 5, 5);
// 输出结果
for (i = 0; i < 10; i++) {
printf("%d ", merged[i]);
}
printf("\n");
return 0;
}
```
你可以复制上述代码并编译运行,然后输入两个整数数组,程序会输出合并排序后的结果。需要注意的是,上述代码没有对输入进行错误处理,如果输入的不是整数,程序会出现错误。在实际使用中应该考虑增加错误处理的代码。
阅读全文