初始化二维数组中的特定行和列时出现问题
Issues initializing specific rows and columns in a 2d array
我有一个二维arra和两个1d数组。
我需要从第一个 1d 数组中获取元素,并将它们存储在 2d 数组的前 5 行和列中。
然后,我需要从第二个 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
因此,正如你所看到的,数组 alpha 中的前四个元素被放入 Array3 而不是 1 - 20。我的逻辑有些有缺陷,但我不知道如何纠正它。
有什么建议吗?
PS:我意识到 for 循环可以压缩,我打算这样做,我也没有设置 for 循环以在第 5 行结束处理,因为此时我更关心数字范围是否正确。
三个嵌套循环不是执行此操作的方法。这可能有效:
void CopyArrays(int Array1[], int a1_Size, int Array2[], int a2_Size, int Array3[][COLUMNS])
{
int i = 0;
for ( ; i < a1_Size; i++)
// indexing a 2D array with one variable
Array3[i / COLUMNS][i % COLUMNS] = Array1[i];
for (int j = 0; j < a2_Size; j++)
Array3[(j + i) / COLUMNS][(j + i) % COLUMNS] = Array2[j];
}
我使用(j + i)
在第一个循环停止的地方继续写入Array3
的元素。
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 在函数中传递二维数组
- 按列打印二维数组时出现问题
- 二维数组问题
- 用变量作为C++中二维数组的维数的问题
- 关于C++中的二维数组,我的解决方案有什么问题
- c++二维数组算术问题
- c++中二维数组中引用传递的问题
- C++(Allegro Library)位图二维数组问题
- c++二维数组问题