我实在看不出来哪里错了:
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
char g[N][N];
bool vis[N][N];
int n,m,k,x,y,d,T,step;
int main(){
scanf("%d",&T);
while(T--){
memset(g,0,sizeof g);
memset(vis,0,sizeof vis);
n=m=k=x=y=d=0;
step=1;
scanf("%d%d%d",&n,&m,&k);
scanf("%d%d%d",&x,&y,&d);
vis[x][y]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>g[i][j];
}
}
while(k--){
if(d==0){
if(g[x][y+1]=='.'&&y+1<=m&&!vis[x][y+1]){
y+=1;
step++;
vis[x][y]=1;
continue ;
}
}else if(d==1){
if(g[x+1][y]=='.'&&x+1<=n&&!vis[x+1][y]){
x+=1;
step++;
vis[x][y]=1;
continue ;
}
}else if(d==2){
if(g[x][y-1]=='.'&&y-1>=1&&!vis[x][y-1]){
y-=1;
step++;
vis[x][y]=1;
continue ;
}
}else{
if(g[x-1][y]=='.'&&x-1>=1&&!vis[x-1][y]){
x-=1;
step++;
vis[x][y]=1;
continue ;
}
}
d=(d+1)%4;
}
printf("%d\n",step);
}
return 0;
}