题解 | 叠框
字符串模拟题
#include <stdio.h>
//对于不容易直接逐行输出的图案,可以采用先在数组中填充构造,再最后一次性输出
char arr[80][80];
int main() {
int n;
char a, b;
while (scanf("%d %c %c", &n, &a, &b) != EOF) {
//在二维数组上填充图案
for (int i = 0; i <= n/2; i++) {
int j = n - i - 1;
int len = n - i * 2;
char cur;
if (i % 2 == 0) {
cur = b;
}
else {
cur = a;
}
for (int k = 0; k < len; k++) {
arr[i][i+k] = cur;//上
arr[i + k][i] = cur;//左
arr[i + k][j] = cur;//右
arr[j][i + k] = cur;//下
}
}
//剔除最外围4个角
if (n != 1) {
arr[0][0] = ' ';
arr[0][n - 1] = ' ';
arr[n - 1][0] = ' ';
arr[n - 1][n - 1] = ' ';
}
//逐行逐列打印
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%c", arr[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
计算机复试机试(王道版) 文章被收录于专栏
收录王道2026年计算机复试机试的(课程)代码题解,仅供个人学习参考 2026.2.25补充说明:已更完,祝好运!

查看18道真题和解析