用于显示矩阵之字形的程序

时间:2017-06-20 22:34:50

标签: c++ algorithm matrix logic

我需要以锯齿形显示矩阵。像那样: 矩阵的大小: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;

1 个答案:

答案 0 :(得分:0)

在其他情况下,j在while循环开始时等于columns(因此,在下一行,matrix[i][j]将超出范围,因为j应该严格小于columns)。一个简单的解决方法是将while(j>=0)更改为while(j>0)并在j--之前移动cout

但是,正如其他人所说,你应该学会使用调试器,很容易就能用它来捕获这些错误。