У меня есть двухмерная арра и два массива 1d.Проблемы с инициализацией определенных строк и столбцов в массиве 2d
Мне нужно взять элементы из 1-го массива 1d и сохранить их в первых 5 строках и столбцах массива 2d.
Затем мне нужно взять элементы из второго массива 1d и сохранить их в остальных строках и столбцах массива 2d.
Проблема в том, что элементы не идут правильно, см. Вывод внизу, чтобы понять, что я имею в виду!
#include <iostream>
#include <iomanip>
using namespace std;
const int ROWS = 10;
const int COLUMNS = 4;
void CopyArrays(int Array1[], int a1_Size, int Array2[], int a2_Size, int Array3[][COLUMNS]);
/* Array1[] refers to array1 a1_Size refers to the size of the first array,
Array2 refers to array2 and a2_Size refers to the size of array2,
And Array3[][COLUMNS] refers to the 2d array */
void DisplayArray3(int Array3[][COLUMNS]);
int main()
{
int array1[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int array2[20] = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40};
int Array3[ROWS][COLUMNS];
CopyArrays(array1, 20, array2, 20, Array3);
DisplayArray3(Array3);
return 0;
}
void CopyArrays(int Array1[], int a1_Size, int Array2[], int a2_Size, int Array3[][COLUMNS])
{
for (int i = 0; i < a1_Size; i++)
{
for (int j = 0; j < ROWS; j++)
{
for (int k = i; k < COLUMNS; k++)
{
Array3[j][k] = Array1[i];
}
}
}
}
void DisplayArray3(int Array3[][COLUMNS])
{
for(int i = 0; i < ROWS; i++)
{
for(int j = 0; j < COLUMNS; j++)
{
cout << setw(10) << Array3[i][j];
}
cout << "\n" ;
}
}
// Выходные данные:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Так как вы можете видеть только первые четыре элемента из массива альфа претворяются в Array3 Вместо 1 - 20. Некоторые, где моя логика ошибочна но я не уверен, как исправить это.
Любые предложения?
PS: Я понимаю, что циклы for могут быть сжаты, и я планирую это сделать, также я не устанавливал циклы for для завершения обработки в строке 5, потому что в этот момент меня больше интересует диапазон чисел, верный.
О, да, я был совершенно вне базы, это имеет смысл, хотя спасибо за ответ, который он решил решить. Я нахожу многомерные массивы, чтобы быть болью в заднице. – Afflicted