C++程序 按蛇形顺序输出矩阵
在编写程序时,我们经常需要将矩阵按一定的顺序进行遍历,常见的有按行遍历、按列遍历等。而本篇文章介绍的是一种比较有趣的遍历方式——按蛇形顺序输出矩阵。
以一个4*4的矩阵为例:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
按蛇形顺序输出的结果为:
1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13
实现这种遍历方式的代码并不难,下面我们来看一下具体的实现过程。
首先,我们需要用两个变量来表示当前遍历的方向,一个变量用来表示行的方向,另一个变量用来表示列的方向。
接着,我们需要判断当前的位置处于第几层,根据层数的奇偶性来确定当前遍历的方向。
最后,我们需要确定每层遍历的起始和结束位置以及步长,然后按照方向进行遍历即可。
下面是完整的C++代码实现:
#include <iostream>
using namespace std;
const int maxn = 100;
int a[maxn][maxn];
int main() {
int n = 4; // 矩阵大小
int tot = 1; // 当前遍历到的位置
// 初始化矩阵
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
a[i][j] = tot++;
}
}
// 按蛇形顺序遍历矩阵
for(int i = 0; i < n; i++) {
if(i % 2 == 0) { // 偶数层,从左往右遍历
for(int j = 0; j < n; j++) {
cout << a[i][j] << " ";
}
} else { // 奇数层,从右往左遍历
for(int j = n - 1; j >= 0; j--) {
cout << a[i][j] << " ";
}
}
}
return 0;
}
代码中使用了一个二维数组来表示矩阵,并初始化了一个4*4的矩阵。然后按照蛇形顺序遍历矩阵,并输出遍历的结果。
在实际应用中,我们可以根据这种思路来遍历任意大小的矩阵,只需简单的修改一下代码中的参数即可。
结论
本文介绍了一种比较有趣的遍历矩阵的方式——按蛇形顺序输出矩阵,并给出了具体的C++代码实现。该方法实现简单、代码清晰易懂,可以方便地应用在实际编程中。