题解 | 叠框

字符串模拟题

#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补充说明:已更完,祝好运!

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务