c++二维数组生成螺旋方阵
时间: 2023-12-23 07:02:50 浏览: 147
补充内容-C++二维数组的使用
以下是使用C++生成螺旋方阵的代码示例:
```cpp
#include <iostream>
using namespace std;
void generateSpiralMatrix(int n) {
int **matrix = new int*[n]; // 动态分配二维数组的行指针
for (int i = 0; i < n; i++) {
matrix[i] = new int[n]; // 为每行指针分配空间
}
int num = 1; // 要填充的数字
int rowStart = 0, rowEnd = n - 1; // 行的起始和结束位置
int colStart = 0, colEnd = n - 1; // 列的起始和结束位置
while (rowStart <= rowEnd && colStart <= colEnd) {
// 从左到右填充上边
for (int i = colStart; i <= colEnd; i++) {
matrix[rowStart][i] = num++;
}
rowStart++;
// 从上到下填充右边
for (int i = rowStart; i <= rowEnd; i++) {
matrix[i][colEnd] = num++;
}
colEnd--;
// 从右到左填充下边
if (rowStart <= rowEnd) {
for (int i = colEnd; i >= colStart; i--) {
matrix[rowEnd][i] = num++;
}
rowEnd--;
}
// 从下到上填充左边
if (colStart <= colEnd) {
for (int i = rowEnd; i >= rowStart; i--) {
matrix[i][colStart] = num++;
}
colStart++;
}
}
// 打印螺旋方阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
}
int main() {
int n;
cout << "请输入螺旋方阵的维度:";
cin >> n;
generateSpiralMatrix(n);
return 0;
}
```
阅读全文