小白1-6

 

 

 

一开始我也以为要用3维数组做 发现方向错了

有时候方向比努力重要 眼界确实不够

转载自

https://www.cnblogs.com/qingjiuling/p/9856214.html

思路分析:一开始傻乎乎的设了个唯一的三维数组,想着覆盖来解,发现很麻烦,跟随大神的脚步意识到直接建3个二维数组分别表示主视图,左视图,俯视图即可,在主视图里就不管z了,任何一个z下的x,y坐标存在都将这一点标记为有立方体,这样做就会非常简单了
然后可以注意下这个#define用法,比较方便

#include <bits/stdc++.h>
using namespace std;
const int inf=1<<30;
typedef long long ll;
const double pi=acos(-1);
#define mst(a,b) memset(a,b,sizeof(a))
char a[1001][1001],b[1001][1001],c[1001][1001];//分别用来保存主,左,俯视图,二维即可
int X,Y,Z,n,x,y,z;
int main(){
mst(a,'.');
mst(b,'.');
mst(c,'.');
cin>>X>>Y>>Z>>n;
while(n--){
cin>>x>>y>>z;
a[y][x]='x';
b[y][z]='x';
c[z][x]='x';
}
for(int i=Y;i>0;i--,puts("")){
for(int j=1;j<=X;j++) cout<<a[i][j];
cout<<" ";
for(int j=1;j<=Z;j++) cout<<b[i][j];
}
puts("");
for(int i=1;i<=Z;i++){
for(int j=1;j<=X;j++) cout<<c[i][j];
cout<<endl;
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/luolinjin/p/12786379.html
1-6