一、小杨要画'日'字
有一天,小杨想用电脑画一个大大的'日'字。
比如当 n = 5 时,他想画成这样:
|---| |xxx| |---| |xxx| |---|
是不是很像'日'字?
二、题目规则
给你一个奇数 n(比如 5、7、9…)
你要打印一个 n × n 的正方形。
规则:
- 最左列 和 最右列 全部是
| - 第一行、最后一行、中间一行 全部是
-(但两边还是|) - 其他位置全部是
x
三、先理解结构
假设 n = 7
行号从 0 到 6:
- 0 ← 第一行(横线)
- 1, 2, 3 ← 中间行(横线)
- 4, 5, 6 ← 最后一行(横线)
四、判断逻辑三步走
在每个位置 (i, j):
1. 第一步:是不是最左或最右列?
if (j == 0 || j == n - 1) {
cout << '|';
}
优先判断!因为边框最重要。
2. 第二步:是不是特殊横线行?
else if (i == 0 || i == n - 1 || i == n / 2) {
cout << '-';
}
注意:
n/2 就是中间行
比如 n=5:
5/2 = 2
3. 第三步:其他情况
else {
cout << 'x';
}
五、为什么要按这个顺序判断?
因为边框优先!
比如第一行:
如果你先判断横线,
两边就会变成 -,而不是 |
所以顺序不能乱!
六、参考程序
#include <iostream>
std;
{
n;
cin >> n;
( i = ; i < n; ++i) {
( j = ; j < n; ++j) {
ch;
(j == || j == n - ) {
ch = ;
} (i == || i == n - || i == n / ) {
ch = ;
} {
ch = ;
}
cout << ch;
}
cout << endl;
}
;
}


