OJ_叠框问题

问题描述

OJ_叠框问题_第1张图片
OJ_叠框问题_第2张图片

c语言实现

#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;

int main() {
	int n; //存放外框尺寸
	int a,b; //存放两个字符


	char matrix[100][100] = { 0 };//全部初始化为休止符'/0'
	while (scanf("%d %c %c", &n, &a, &b) != EOF) {
		int cur = a;//存放当前填充字符
		memset(matrix, 0, 10000); 
		for (int i = 0; i <= n / 2; i++)
		{
			//左上:n/2-i , n/2-i
			//右上:n/2-i , n/2+i
			//左下:n/2+i , n/2-i
			//右下:n/2+i , n/2+i

			//左上到右上
			for (int x = n / 2 - i, y = n / 2 - i; y <= n / 2 + i; y++) {
				matrix[x][y] = cur;
			}

			//左下到右下
			for (int x = n / 2 + i, y = n / 2 - i; y <= n / 2 + i; y++) {
				matrix[x][y] = cur;
			}

			//左上到左下
			for (int x = n / 2 - i, y = n / 2 - i; x <= n / 2 + i; x++) {
				matrix[x][y] = cur;
			}

			//右上到右下
			for (int x = n / 2 - i, y = n / 2 + i; x <= n / 2 + i; x++) {
				matrix[x][y] = cur;
			}

			if (a == cur) {
				cur = b;
			}
			else {
				cur = a;
			}
		}

		if (n != 1) {
			matrix[0][0] = ' ';
			matrix[0][n - 1] = ' ';
			matrix[n - 1][n - 1] = ' ';
			matrix[n - 1][0] = ' ';
		}

		for (int i = 0; i < n; ++i) {
			printf("%s\n", matrix[i]);
		}
	}
	return 0;
}

你可能感兴趣的:(数据结构与算法,c语言,算法)