交替合并两个不同数组的元素在 C++ 中的第三个数组中。
问题陈述
给定两个数组,我们需要以这样的方式合并两个数组:组合的数组具有第一个和第二个数组的交替元素。如果其中一个数组具有额外的元素,则应在合并数组的末尾附加这些元素。
arr1[] = {10, 20, 30, 40}
arr2[] = {-10, -20, -30, -40}
result[] = {10, -10, 20, -20, 30, -30, 40, -40}算法
1. Traverse both arrays and one by one put elements into result array. 2. If one of the array exhausts then put remaining elements of other array into result array.
示例
#include <iostream>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
void alternateMergedArray(int *arr1, int n1, int *arr2, int n2,int *result){
int i, j, k;
i = 0;
j = 0;
k = 0;
while (i < n1 && j < n2) {
result[k] = arr1[i];
++k;
++i;
result[k] = arr2[j];
++k;
++j;
}
while (i < n1) {
result[k] = arr1[i];
++k;
++i;
}
while (j < n2) {
result[k] = arr2[j];
++k;
++j;
}
}
void displayArray(int *arr, int n){
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
}
int main(){
int arr1[] = {10, 20, 30, 40};
int arr2[] = {-10, -20, -30, -40};
int result[SIZE(arr1) + SIZE(arr2)];
cout << "First array: " << endl;
displayArray(arr1, SIZE(arr1));
cout << "Second array: " << endl;
displayArray(arr2, SIZE(arr2));
cout << "Result array: " << endl;
alternateMergedArray(arr1, SIZE(arr1), arr2, SIZE(arr2),result);
displayArray(result, SIZE(result));
return 0;
}输出
当您编译和执行上述程序时。它产生以下输出 -
First array: 10 20 30 40 Second array: -10 -20 -30 -40 Result array: 10 -10 20 -20 30 -30 40 -40
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP