一个制造模型的代码
2024-09-12 22:29:39
发布于:上海
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 55,MAXM = 550;
char c[MAXM][MAXM],s[6][8] = {
"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+..",
};
int m,n,a[MAXN][MAXN],h,w;
void draw(int x,int y){
for(int i = 0;i < 6;i++){
for(int j = 0;j < 7;j++){
if(s[i][j] != '.'){
c[x + i][y + j] = s[i][j];
}
}
}
}
int main(){
cin >> m >> n;
for(int i = 1;i <= m;i++){
for(int j = 1;j <= n;j++){
cin >> a[i][j];
h = max(h,(m - i) * 2 + (a[i][j] - 1) * 3 + 6);
w = max(w,(m - i) * 2 + (j - 1) * 4 + 7);
}
}memset(c,'.',sizeof(c));
for(int i = 1;i <= m;i++){
for(int j = 1;j <= n;j++){
for(int k = 1;k <= a[i][j];k++){
draw(h - 1 - (m - i) * 2 - (k - 1) * 3 - 5,(m - i) * 2 + (j - 1) * 4);
}
}
}for(int i = 0;i < h;i++){
c[i][w] = '\0';
cout << c[i] << '\n';
}
return 0;
}
输入:
3 4
2 2 1 2
2 2 1 1
3 2 1 2
输出:
......+---+---+...+---+
..+---+ / /|../ /|
./ /|-+---+ |.+---+ |
+---+ |/ /| +-| | +
| | +---+ |/+---+ |/|
| |/ /| +/ /|-+ |
+---+---+ |/+---+ |/| +
| | | +-| | + |/.
| | |/ | |/| +..
+---+---+---+---+ |/...
| | | | | +....
| | | | |/.....
+---+---+---+---+......
制作不易,请点个赞(纯手写,废了两张草稿,3张笔记,以及2次DEVC++)
全部评论 1
我记得这是有原题的。
5天前 来自 加拿大
0
有帮助,赞一个