我需要以锯齿形显示矩阵。像那样: 矩阵的大小:3 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;
答案 0 :(得分:0)
在其他情况下,j
在while循环开始时等于columns
(因此,在下一行,matrix[i][j]
将超出范围,因为j
应该严格小于columns
)。一个简单的解决方法是将while(j>=0)
更改为while(j>0)
并在j--
之前移动cout
。
但是,正如其他人所说,你应该学会使用调试器,很容易就能用它来捕获这些错误。