如下图,按箭头方向输出改矩阵的元素:
观察可知,若输出元素为M[i][j]时,i+j = k,k值从0到row+col-2逐渐变化,当k为奇数时,输出M[i][k-i];当k为偶数时,输出M[k-i][i]。
1 void outputMatrix(const char *M, const int row, const int col) 2 { 3 int n = row + col - 2; 4 for(int k=0; k<=n; k++) 5 for(int i=0; i<=k; i++) 6 { 7 if(k%2!=0 && i<row && k-i<col) 8 cout<<M[i][k-i]<<endl; 9 else if(i<col && k-i<row) 10 cout<<M[k-i][i]<<endl; 11 } 12 }