问题 C: 零基础学C/C++118——弓型矩阵
时间: 2024-10-02 15:02:04 浏览: 39
弓形矩阵,也称为Spiral Matrix或蛇形矩阵,是一种特殊的矩阵存储方式。它是通过螺旋式的方式从左上角开始,按照顺时针或逆时针方向填充数组,形成类似于数字键盘排列的一种结构。在C/C++中,你可以通过嵌套循环来生成这种矩阵。
以下是生成一个4x4大小的弓形矩阵的一个简单示例:
```cpp
#include <iostream>
using namespace std;
int get SpiraledMatrix(int n) {
int matrix[n][n];
int num = 1;
int row = 0, col = 0; // 当前元素的位置
for (int i = 0; i < n * n; ++i) {
matrix[row][col] = num++;
// 移动到下一个位置
if (row == 0 || col == n - 1 || row == n - 1 || col == 0)
col++, row++; // 转换方向
else
row--, col++; // 向右下或左上移动
}
return matrix;
}
// 打印矩阵
void printMatrix(int matrix[][n]) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
}
int main() {
int n = 4;
int spiralMatrix = getSpiraledMatrix(n);
printMatrix(spiralMatrix);
return 0;
}
```
阅读全文