#include<iostream> #include<cstring> #include<cstdio> using namespace std; int v[52][52]; char s[2001][2001]; int n,m,x,y; void wri(int a,int b) { s[a][b]=‘+‘; s[a+1][b]=‘-‘; s[a+2][b]=‘-‘; s[a+3][b]=‘-‘; s[a+4][b]=‘+‘; s[a][b-1]=‘|‘; s[a+1][b-1]=‘ ‘; s[a+2][b-1]=‘ ‘; s[a+3][b-1]=‘ ‘; s[a+4][b-1]=‘|‘; s[a+5][b-1]=‘/‘; s[a][b-2]=‘|‘; s[a+1][b-2]=‘ ‘; s[a+2][b-2]=‘ ‘; s[a+3][b-2]=‘ ‘; s[a+4][b-2]=‘|‘; s[a+5][b-2]=‘ ‘; s[a+6][b-2]=‘+‘; s[a][b-3]=‘+‘; s[a+1][b-3]=‘-‘; s[a+2][b-3]=‘-‘; s[a+3][b-3]=‘-‘; s[a+4][b-3]=‘+‘; s[a+5][b-3]=‘ ‘; s[a+6][b-3]=‘|‘; s[a+1][b-4]=‘/‘; s[a+2][b-4]=‘ ‘; s[a+3][b-4]=‘ ‘; s[a+4][b-4]=‘ ‘; s[a+5][b-4]=‘/‘; s[a+6][b-4]=‘|‘; s[a+2][b-5]=‘+‘; s[a+3][b-5]=‘-‘; s[a+4][b-5]=‘-‘; s[a+5][b-5]=‘-‘; s[a+6][b-5]=‘+‘; }; int main() { cin>>m>>n; for (int i=1;i<=2000;i++) for (int j=1;j<=2000;j++) s[i][j]=‘.‘; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) cin>>v[i][j]; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) { x=1+2*(m-i)+4*j-4; y=2000-2*(m-i); for (int k=1;k<=v[i][j];k++) { wri(x,y-3*(k-1)); }; }; bool z; z=false; for (int i=1;i<=2000;i++) { for (int j=1;j<=2000;j++) if (s[j][i]!=‘.‘) { z=true; y=i; break; }; if (z==true) break; }; z=false; for (int j=2000;j>=1;j--) { for (int i=2000;i>=1;i--) if (s[j][i]!=‘.‘) { z=true; x=j; break; }; if (z==true) break; }; for (int i=y;i<=2000;i++) { for (int j=1;j<=x;j++) cout<<s[j][i]; cout<<endl; }; return 0; };
有个学霸找我这个脑残要这道题的无脑代码——立体图,布布扣,bubuko.com
原文:http://www.cnblogs.com/201312lyx/p/3809887.html