怎么不输出
查看原帖
怎么不输出
681558
Weizhuo_Zhao楼主2024/8/2 22:40
#include <bits/stdc++.h>
#define MAX_NM 25
using namespace std;

char a[MAX_NM * 6][MAX_NM * 6];

const string b[7] = { //6*7
	"",
	" ..+---+",
	" ./   /|",
	" +---+ |",
	" |   | +",
	" |   |/.",
	" +---+.."
};
short h[MAX_NM + 5][MAX_NM + 5], n, m;

void draw(int x, int y) {
	for (int i = 1; i <= 6; i++)
		for (int j = 1; j <= 7; j++)
			if (b[i][j] != '.')
				a[x - i][y + j] = b[6 - i - 1][j];
}

int main() {
	cin >> n >> m;
//	int MAX_H=-1,MAX_Hi;
	int k = -1, l = m * 4 + 1 + n * 2;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++) {
			cin >> h[i][j];
			k = max(k, h[i][j] * 3 + 3 + (n - i + 1) + 1);
		}
	for (int i = 1; i <= k; i++)
		for (int j = 1; j <= l; j++)
			a[i][j] = '.';
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++) {
			int x = k - (n - i) * 2, y = (n - i) * 2 + (j - 1) * 4 + 1;
			while (h[i][j]--) {
				draw(x, y);
				x -= 3;
			}
		}
	for (int i = 1; i <= k; i++) {
		for (int j = 1; j <= l; j++)
			cout << a[i][j] << ' ';
		puts("");
	}
	return 0;
}
2024/8/2 22:40
加载中...