b站视频
https://www.bilibili.com/video/BV1nU4y1o7VJ/
#include <bits/stdc++.h>
using namespace std;
int m, n, num;
char a[2000][2000];
char b[6][8] = {
" +---+",
" / /|",
"+---+ |",
"| | +",
"| |/ ",
"+---+ "};
int minx = 1000, maxy = 1000;
void draw(int i, int j) {
memcpy(&a[i - 0][j], &b[5 - 0][0], 5);
memcpy(&a[i - 1][j], &b[5 - 1][0], 6);
memcpy(&a[i - 2][j], &b[5 - 2][0], 7);
memcpy(&a[i - 3][j], &b[5 - 3][0], 7);
memcpy(&a[i - 4][j + 1], &b[5 - 4][1], 6);
memcpy(&a[i - 5][j + 2], &b[5 - 5][2], 5);
minx = min(minx, i - 5);
maxy = max(maxy, j + 6);
}
int main() {
cin >> m >> n;
int x = 1000, y = 1000, p, q;
for (int i = 0; i < m; i ++) {
x += 2, y -= 2;
for (int j = 0; j < n; j ++) {
cin >> num;
for (int k = 0; k < num; k ++) {
draw(x - 3 * k, y + 4 * j );
}
}
}
for (int i = minx; i <= x; i ++) {
for (int j = y; j <= maxy; j ++) {
if (a[i][j] == 0) cout << '.';
else cout << a[i][j];
}
cout << endl;
}
return 0;
}
这段代码展示了如何使用C++在B站视频中实现一个简单的图形绘制程序,通过读取输入并调用draw函数生成由字符组成的图案。核心是利用数组和memcpy操作来构造特定的几何形状。
724

被折叠的 条评论
为什么被折叠?



