用c语言输入两个数组,在将两个数组合并合并成一个新数组
时间: 2023-10-02 11:07:03 浏览: 107
以下是一个示例代码,可以输入两个数组,然后将它们合并成一个新数组:
```c
#include <stdio.h>
int main() {
int arr1[100], arr2[100], res[200];
int n1, n2, i, j, k;
printf("Enter the size of array 1: ");
scanf("%d", &n1);
printf("Enter the elements of array 1: ");
for (i = 0; i < n1; i++) {
scanf("%d", &arr1[i]);
}
printf("Enter the size of array 2: ");
scanf("%d", &n2);
printf("Enter the elements of array 2: ");
for (i = 0; i < n2; i++) {
scanf("%d", &arr2[i]);
}
i = 0; j = 0; k = 0;
while (i < n1 && j < n2) {
if (arr1[i] < arr2[j]) {
res[k++] = arr1[i++];
} else {
res[k++] = arr2[j++];
}
}
while (i < n1) {
res[k++] = arr1[i++];
}
while (j < n2) {
res[k++] = arr2[j++];
}
printf("Merged array: ");
for (i = 0; i < k; i++) {
printf("%d ", res[i]);
}
printf("\n");
return 0;
}
```
首先,我们申请了三个数组 `arr1`、`arr2` 和 `res`,分别用于存放输入的两个数组和合并后的数组。接着,我们分别输入两个数组的大小和元素。然后,我们使用三个指针 `i`、`j` 和 `k`,分别指向 `arr1`、`arr2` 和 `res` 中当前正在比较的元素。我们使用一个 `while` 循环来比较 `arr1` 和 `arr2` 中的元素,并把较小的元素放入 `res` 数组中。如果有一个数组已经比较完了,我们就把另一个数组中剩余的元素放入 `res` 数组中。最后,我们输出合并后的数组 `res`。
阅读全文