C++ 显示矩阵之字形的程序

C++ 显示矩阵之字形的程序,c++,algorithm,matrix,logic,C++,Algorithm,Matrix,Logic,我需要以之字形显示矩阵。就像这样: 矩阵的大小:3 00 01 02 10 11 12 20 21 22 30 31 32 显示:00 01 02 12 11 10 20 21[…] 这是我的代码,但它在中间显示了一些随机数: int lines, columns; cin>> lines >>columns; int matriz[lines][columns]; for (int i = 0; i < lines; ++i){ for (in

我需要以之字形显示矩阵。就像这样: 矩阵的大小:3

00 01 02 
10 11 12 
20 21 22 
30 31 32 
显示:
00 01 02 12 11 10 20 21[…]

这是我的代码,但它在中间显示了一些随机数:

int lines, columns;
cin>> lines >>columns;
int matriz[lines][columns];

for (int i = 0; i < lines; ++i){
    for (int j = 0; j < columns; ++j){
        cin >> matrix[i][j];
    }
}
int j=0;
for (int i = 0; i < lines; ++i){
    if (i%2==0){
        while(j<columns){
            cout<<matrix[i][j]<<' ';
            j++;
        }
    }else{
        while(j>=0){
            cout<<matrix[i][j]<<' ';
            j--;
        }

    }
}
return 0;
int行、列;
cin>>行>>列;
int matriz[行][列];
对于(int i=0;i>矩阵[i][j];
}
}
int j=0;
对于(int i=0;iwhile(j在else情况下,
j
等于while循环开始时的
columns
(因此在下一行,
matrix[i][j]
将不受限制,因为
j
应该严格小于
columns
)。一个简单的解决方法是将
while(j>=0)
更改为
while(j>0)
并在
cout
之前移动
j--


但是,正如其他人所说,你应该学会使用调试器,它很容易捕捉到这样的错误。

你可能在
j
上出界了。检查一下,欢迎使用堆栈溢出。请花时间阅读并参考“你可以问什么”和“如何问”中的材料。解决这些问题的正确工具是你的调试ger。在询问堆栈溢出问题之前,您应该逐行检查代码。有关更多帮助,请阅读。至少,您应该在问题中包含一个重现问题的示例,以及您在调试器中所做的观察。
int matriz[行][列]C/C++是一个可变长度数组,而不是KoSc++。C++要求所有编译时都要知道数组的维数。GCC打破了标准,允许它,但是可以肯定的是,<代码>行>列< /C>不超过你的自动存储大小。比我快一点。我将在这里删除我的演示/证明:嘿,使用高亮显示,使用这个字符。第1面,是“而不是单引号”。希望这有帮助