C++ 中矩阵的行遍历与列遍历


矩阵可以以两种方式遍历。行遍历从第一行开始,依次访问每一行,直到最后一行。一行中的元素从索引 0 返回到最后一个索引。

在列遍历中,元素按顺序从第一列遍历到最后一列。

在二维矩阵 M[i][j] 中。索引 i 用于表示行,索引 j 用于表示列。对于行遍历,从

i=第 0 行 和 0<=j<最后一个索引

i=第 1 行 和 0<=j<最后一个索引

.....

i=最后一行 和 0<=j<最后一个索引

对于列遍历,从

j=第 0 列 和 0<=i<最后一个索引

j=第 1 列 和 0<=i<最后一个索引

.....

j=最后一列 和 0<=i<最后一个索引

索引的顺序在二维数组 M[i][j] 中保持不变 - i 用于行,j 用于列

示例

输入 

int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0},
   {5,4,3,2,1},{0,0,0,0,0},
   {8,9,7,6,1}};

输出 

Row Major Traversal
1 2 3 4 5
6 7 8 9 0
5 4 3 2 1
0 0 0 0 0
8 9 7 6 1
Column Major Traversal
1 6 5 0 8
2 7 4 0 9
3 8 3 0 7
4 9 2 0 6
5 0 1 0 1

说明 −输出不言自明

输入 

int arr[MAX][MAX] = { {1,1,1,1,1},{2,2,2,2,2},
   {3,3,3,3,3},{4,4,4,4,4},
   {5,5,5,5,5}};

输出 

Row Major Traversal
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Column Major Traversal
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

说明 − 输出不言自明。

下面程序中使用的方法如下

在这种方法中,我们使用两个 for 循环来打印输入的二维矩阵,分别进行行遍历和列遍历。

  • 获取输入数组 arr[][] 来表示二维矩阵。

  • 获取变量 i 和 j 作为行元素和列元素的索引。

  • 对于行遍历,从索引 i=0 开始到 i<MAX 的 for 循环,逐行遍历

  • 在其中,从 j=0 开始到 j<MAX 的嵌套 for 循环,遍历第 i 行的所有元素。

  • 打印 arr[i][j]

  • 对于列遍历,从索引 j=0 开始到 j<MAX 的 for 循环,逐列遍历

  • 在其中,从 i=0 开始到 i<MAX 的嵌套 for 循环,遍历第 j 列的所有元素。

  • 打印 arr[i][j]。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

Open Compiler
#include <bits/stdc++.h> using namespace std; #define MAX 5 int main(){ int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0},{5,4,3,2,1},{0,0,0,0,0},{8,9,7,6,1}}; int i, j; cout<<"Row Major Traversal "<<endl; for(i=0;i<MAX;i++){ cout<<endl; for(j=0;j<MAX;j++){ cout<<" "<<arr[i][j]; } } cout<<endl<<endl; cout<<"Column Major Traversal "<<endl; for(j=0;j<MAX;j++){ cout<<endl; for(j=0;j<MAX;j++){ cout<<" "<<arr[j][i]; } } return 0; }

输出

如果我们运行上面的代码,它将生成以下输出

Row Major Traversal
1 2 3 4 5
6 7 8 9 0
5 4 3 2 1
0 0 0 0 0
8 9 7 6 1
Column Major Traversal
6 5 0 8 3 2 7 6 4

更新于: 2021-11-03

4K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告