C++,打印之字形矩阵
时间: 2024-10-02 09:01:39 浏览: 33
在C++中,打印之字形矩阵(也称为Spiral Matrix)就是按照一种螺旋的方式从左上角开始,依次访问每一行和每一列的元素,直到所有元素都被访问到。以下是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
void printSpiral(int matrix[3][3], int m, int n) {
int top = 0, bottom = m - 1, left = 0, right = n - 1; // 边界指针
while (top <= bottom && left <= right) {
// 从左向右打印第一行
for (int i = left; i <= right; ++i) {
cout << matrix[top][i] << " ";
}
top++;
// 从上向下打印最后一列
for (int i = top; i <= bottom; ++i) {
cout << matrix[i][right] << " ";
}
right--;
// 如果还有剩余区域,继续循环
if (top <= bottom) {
// 从右向左打印倒数第二行
for (int i = right; i >= left; --i) {
cout << matrix[bottom][i] << " ";
}
bottom--;
} else if (left <= right) { // 只有最下面一列
// 从下向上打印第一列
for (int i = bottom; i >= top; --i) {
cout << matrix[i][left] << " ";
}
left++;
}
}
}
int main() {
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int m = 3, n = 3;
printSpiral(matrix, m, n);
return 0;
}
```
当你运行这个程序,它会输出数字1到9组成的之字形矩阵。
阅读全文