牛客网 牛客小白月赛1 F.三视图

F.三视图
 
 
 
这个题自己想一下三维的,正视图和左视图中y轴为行数,x轴和z轴是列数,因为中间有一列输出空格,初始化的时候就要初始化为空格,什么都不写是不对的。
俯视图中,就是z轴为行数,x轴为列数。想一下就可以了。
 
代码:
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstdlib>
 6 #include<algorithm>
 7 using namespace std;
 8 typedef long long ll;
 9 const int maxn=2000+10;
10 const int maax=1e5+10;
11 int a[maax][5];
12 char s[maxn][5*maxn],w[maxn][maxn];
13 int main(){
14     int x,y,z,n;
15     cin>>x>>y>>z>>n;
16     for(int i=0;i<n;i++){
17         for(int j=0;j<3;j++)
18             cin>>a[i][j];
19     }
20     for(int i=0;i<y;i++){
21         for(int j=0;j<x;j++)
22             s[i][j]='.';
23     }
24     for(int i=0;i<y;i++)
25         s[i][x]=' ';
26     for(int i=0;i<y;i++){
27         for(int j=x+1;j<x+z+1;j++)
28             s[i][j]='.';
29     }
30     for(int i=0;i<n;i++){
31         s[y-1-(a[i][1]-1)][a[i][0]-1]='x';
32     }
33     for(int i=0;i<n;i++){
34         s[y-1-(a[i][1]-1)][x+1+(a[i][2]-1)]='x';
35     }
36     for(int i=0;i<z;i++){
37         for(int j=0;j<x;j++)
38             w[i][j]='.';
39     }
40     for(int i=0;i<n;i++){
41         w[a[i][2]-1][a[i][0]-1]='x';
42     }
43     for(int i=0;i<y;i++){
44         for(int j=0;j<x+z+1;j++)
45             cout<<s[i][j];
46         cout<<endl;
47     }
48     cout<<endl;
49     for(int i=0;i<z;i++){
50         for(int j=0;j<x;j++)
51             cout<<w[i][j];
52         cout<<endl;
53     }
54 }
原文地址:https://www.cnblogs.com/ZERO-/p/9729008.html