c++ - 为什么我的二维数组的第二行从 RAM 中获取随机值?

标签 c++ arrays multidimensional-array

所以我正在为类做这个项目,我正在尝试使用 for 循环为二维数组赋值,但我遇到了几个问题。这是我的代码:

#include <iostream>
#include <string>
using namespace std;

const int MAX = 10;

int main()
{

    int matrix2[MAX][MAX];
    int matrix1[MAX][MAX];


      int i, j;

      j=0;
    for (i=0; i < MAX; i++){

        matrix1[i][j] = i + 5;

        for (j=1; j < MAX; j++){
            matrix1[i][j] = matrix1[i][j-1] + 4;

            cout << matrix1[i][j] << " ";
        }
        cout << endl;
    }




}

这是它的输出:

9 13 17 21 25 29 33 37 41 
1422620036 1422620040 1422620044 1422620048 1422620052 1422620056 1422620060 1422620064 1422620068 
10 14 18 22 26 30 34 38 42 
11 15 19 23 27 31 35 39 43 
12 16 20 24 28 32 36 40 44 
13 17 21 25 29 33 37 41 45 
14 18 22 26 30 34 38 42 46 
15 19 23 27 31 35 39 43 47 
16 20 24 28 32 36 40 44 48 
17 21 25 29 33 37 41 45 49   

这是我想要得到的输出:

5   9   13  17  21  25  29  33  37  41  
6   10  14  18  22  26  30  34  38  42  
7   11  15  19  23  27  31  35  39  43  
8   12  16  20  24  28  32  36  40  44  
9   13  17  21  25  29  33  37  41  45  
10  14  18  22  26  30  34  38  42  46  
11  15  19  23  27  31  35  39  43  47  
12  16  20  24  28  32  36  40  44  48  
13  17  21  25  29  33  37  41  45  49  
14  18  22  26  30  34  38  42  46  50

我在问是否有人我可以做些什么来修复第二行,以及为什么第一列不打印

最佳答案

j 仅在第一个“i 迭代”时为 0;在所有其他情况下,它是 MAX
MAX 的情况下,matrix[i][j] 具有未定义的行为。

稳健的解决方案是将循环变量用于循环而不是其他。
在尽可能小的范围内声明所有内容。

for (int i = 0; i < MAX; i++){
    matrix1[i][0] = i + 5;
    for (int j = 1; j < MAX; j++){
        matrix1[i][j] = matrix1[i][j-1] + 4;
        cout << matrix1[i][j] << " ";
    }
    cout << endl;
}

关于c++ - 为什么我的二维数组的第二行从 RAM 中获取随机值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52406454/

相关文章:

c++ - 使用 C++ 模板类方法的 C 回调

python - 收集雨水的时间复杂度

c++ - Eclipse c++ makefile 项目输出

c++ - STL迭代器和数组的关系

java - Eclipse 强调我的代码不正确,但没有提供建议

c++ - C++ 中基类指针引用的对象的打印类型?

python - 如何缩短这个二维数组代码?

c - 为什么指向 char 数组的指针在右值之间不同是 &"hello"和 char 数组?

python - 是否有更 Pythonic/优雅的方式来扩展 Numpy 数组的维度?

Javascript 检查多维数组是否存在键