思路分析:題目已經明確透露了這道題的解法:就是畫框。當 輸入的邊長 的話,就表示可以在內層繼續嵌套一個方框。廢話就不多說了,直接上代碼吧!
代碼如下:
#include <iostream>
#include <algorithm>
using namespace std;
int n;
char ch[105][105];
int main() {
while (cin >> n) {
// 初始化 (切記 ,必須要初始化!!!)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
ch[i][j] = ' ';
int a = 0;
int b = n;
// 畫框
do {
for (int i = a; i < n - a; i++) { // 畫 上下 兩條邊
ch[a][i] = '*';
ch[n - a - 1][i] = '*';
}
for (int i = a + 1; i < n - a - 1; i++) { // 畫 左右 兩條邊
ch[i][a] = '*';
ch[i][n - a - 1] = '*';
}
a += 2;
b = b - 4;
} while (b > 0); // 判斷是否繼續畫框的條件
// 輸出
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << ch[i][j];
}
cout << endl;
}
}
return 0;
}