一 思路分析:
本题属于简单的模拟题型。需要自己抽象出模拟路线:
本题需要抽象出以下模型:
向右动:(x,y)->(x+1,y): s[x][y-1]=1;x++;
向上动:(x,y)->(x,y+1): s[x][y]=1;y++;
向下动:(x,y)->(x,y-1):s[x-1][y-1]=1;y--;
向左动:(x,y)->(x-1,y): s[x-1][y]=1;x--;
且本题要注意限制条件:1.order[i]=='E'&&y!=0 2.order[i]=='N'&&x!=32
3.order[i]=='W'&&y!=32 4.order[i]=='S'&&x!=0
2.输出格式切记要注意:最后要多加一个cout<<endl;
二 源码展示:
75#include<iostream> 76#include<string> 77using namespace std; 78int s[32][32]; 79int main() 80{ 81 int T,cass=1; 82 cin>>T; 83 //数组清零 84 while(T--) 85 { 86 string order; 87 int x,y;int q; 88 for(int k=0;k<32;k++) 89 for(int j=0;j<32;j++) 90 s[k][j]=0; 91 cin>>x>>y; 92 cin>>order; 93 for(int i=0;order[i]!='.';i++) 94 { 95 if(order[i]=='E'&&y!=0)//向右 96 { 97 s[x][y-1]=1;x++; 98 } 99 else if(order[i]=='N'&&x!=32)//向上 100 { 101 s[x][y]=1;y++; 102 } 103 else if(order[i]=='W'&&y!=32)//向左 104 { 105 s[x-1][y]=1;x--; 106 } 107 else if(order[i]=='S'&&x!=0)//向下 108 { 109 s[x-1][y-1]=1;y--; 110 } 111 } 112 cout<<"Bitmap #"<<cass<<endl;cass++; 113 for(int k=31;k>=0;k--) 114 { 115 for( q=0;q<32;q++) 116 { 117 if(s[q][k]) cout<<'X'; 118 else cout<<'.'; 119 } 120 cout<<endl; 121 } 122 cout<<endl; 123 } 124 return 0; 125}