输入数字n(n<10),输出n层正方形图案。正方形图案最外层的数字是层数,最内层的数字是1,从外向内数字递减,用c++二维数组实现
时间: 2025-01-12 17:01:06 浏览: 70
以下是一个使用C++二维数组实现输出n层正方形图案的代码示例:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数字n(n<10):";
cin >> n;
int arr[10][10];
// 初始化数组
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
arr[i][j] = 0;
}
}
// 填充数组
int num = n;
for(int layer = 0; layer < n/2 + 1; layer++) {
// 上边
for(int j = layer; j < n - layer; j++) {
arr[layer][j] = num;
}
// 右边
for(int i = layer + 1; i < n - layer; i++) {
arr[i][n - layer - 1] = num;
}
// 下边
for(int j = n - layer - 2; j >= layer; j--) {
arr[n - layer - 1][j] = num;
}
// 左边
for(int i = n - layer - 2; i > layer; i--) {
arr[i][layer] = num;
}
num--;
}
// 输出数组
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << arr[i][j] << "\t";
}
cout << endl;
}
return 0;
}
```
这段代码的工作原理如下:
1. 首先,我们声明一个10x10的二维数组来存储正方形图案。
2. 然后,我们使用双重for循环来初始化数组,将所有元素设置为0。
3. 接下来,我们使用一个for循环来填充数组。我们从最外层开始,逐层向内填充数字。每层的数字由变量num控制,初始值为n,然后逐层递减。
4. 对于每一层,我们分别填充上边、右边、下边和左边的数字。
5. 最后,我们使用双重for循环来输出填充好的数组。
这个程序会生成一个n层正方形图案,其中最外层的数字是n,最内层的数字是1,从外向内数字递减。
阅读全文
相关推荐



















