请求神犇帮忙改进一下15、16行的for循环语句,蒟蒻无能为力了QwQ(手动乖巧)
#include<bits/stdc++.h>
using namespace std;
int W,H;//H行,W列
char s[21][21];//小路
int total=0,fi,fj;//total计数器,fi,fj记录当前位置
int main()
{
scanf("%d%d",&W,&H);//输入W,H
for(int i=1;i<=H;i++){
for(int j=1;j<=W;j++){
cin>>s[i][j];//输入瓷砖类型
if(s[i][j]=='@'){fi=i; fj=j; total++;}//记录第一块砖
}
}
for(int i=1;i<=H;i++){
for(int j=1;j<=W;j++){
if(s[fi-1][fj]=='.'){//上
s[fi][fj]='*';//标记已过
fi--;
total++;
}
else if(s[fi+1][fj]=='.'){//下
s[fi][fj]='*';//标记已过
fi++;
total++;
}
else if(s[fi][fj-1]=='.'){//左
s[fi][fj]='*';//标记已过
fj--;
total++;
}
else if(s[fi][fj+1]=='0'){//右
s[fi][fj]='*';//标记已过
fj++;
total++;
}
else if(s[fi-1][fj]=='*'){//上(回)
s[fi][fj]='*';//标记已过
fi--;
}
else if(s[fi+1][fj]=='*'){//下(回)
s[fi][fj]='*';//标记已过
fi++;
}
else if(s[fi][fj-1]=='*'){//左(回)
s[fi][fj]='*';//标记已过
fj--;
}
else if(s[fi][fj+1]=='*'){//右(回)
s[fi][fj]='*';//标记已过
fj++;
}
}
}
printf("%d",total);
return 0;
}