[信息与未来 2026] 南京名片
图形输出题的关键是把每个坐标是否为星号写成条件。
一、先回答问题
结论
逐行逐列判断:N 看两侧和主对角线;J 看第一行、中间列、最后一行左半段。
课堂安排
先抓住模型,再用一个小样例手推,最后把判断写成稳定的 C++14 代码。
二、核心观察
N
`j==0 || j==n-1 || i==j`
J
`i==0 || j==mid || (i==n-1 && j<=mid)`
三、互动演示
四、自己选答案
问题 1:这题最关键的状态是什么?
五、手推结果
| 位置 | N | J |
|---|---|---|
| 第一行 | 两边+对角 | 全是星号 |
| 最后一行 | 两边+对角 | 左半段+中线 |
六、C++14 参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int mid = n / 2;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j == 0 || j == n - 1 || i == j) cout << '*';
else cout << ' ';
}
cout << ' ';
for (int j = 0; j < n; j++) {
if (i == 0 || j == mid || (i == n - 1 && j <= mid)) cout << '*';
else cout << ' ';
}
cout << '\n';
}
return 0;
}读代码重点
先看状态变量,再看核心判断,最后检查边界和输出格式。