Из двух масивов сделать один - C (СИ)
Формулировка задачи:
Нужно с двух масивов сделать один, так например
A = {3, 4, 6}
B = {2, 5, 7, 8}
R = {3, 2, 3, 5, 3, 7, 3, 8, 4, 2, 4, 5, 4, 7, 4, 8, 6, 2, 6, 5, 6, 7, 6, 8}
#include <iostream.h>
#include <conio.h>
#define N 10
int main()
{
int A[N] = {2, 5, 8}, B[N] = {1, 4};
int i, j, n = 3, m = 2;
int R_size = m * n * 2;
int *R = new int [R_size];
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
}
}
delete [] R;
getch ();
return 0;
}Решение задачи: «Из двух масивов сделать один»
textual
Листинг программы
#include <iostream.h>
#include <conio.h>
#define N 10
int main()
{
int A[N] = {2, 5, 8}, B[N] = {1, 4};
int i, j = 0, n = 3, m = 2;
//R={2,1,2,4 5,1,5,4 8,1,8,4}
int R_size = (m * n) + (n * m);
int *R = new int [R_size];
for(i = 0; i < R_size; i+=4)
{
R[i] = A[j];
R[i + 2] = A[j];
j++;
}
j = 0;
for(i = 1; i < R_size; i+=4)
{
R[i] = B[j];
j++;
R[i + 2] = B[j++];
if(j == m)
j = 0;
}
for(i = 0; i < R_size; i++)
{
cout << R[i] << " ";
}
delete [] R;
getch ();
return 0;
}
Объяснение кода листинга программы
В этом коде происходит объединение двух массивов в один.
- Объявляются два массива A и B, каждый из которых содержит по 10 элементов.
- Создается массив R, размер которого определяется как произведение количества строк и столбцов (m и n).
- С помощью цикла for элементы массива A копируются в массив R.
- Копирование элементов массива B в массив R происходит с помощью второго цикла for, который начинается с i=1, чтобы не копировать элементы, которые уже были скопированы из массива A.
- С помощью третьего цикла for элементы массива R выводятся на экран.
- Массив R освобождается с помощью оператора delete.
- Вводится символ с помощью функции getch, чтобы программа не закрылась сразу после вывода элементов массива R.
- Программа возвращает 0, что означает успешное завершение работы программы.