c++ 89分 ~第一次社交讨论 求救!
查看原帖
c++ 89分 ~第一次社交讨论 求救!
219315
Max123456楼主2020/8/29 17:31

我哪里错了?

#include<bits/stdc++.h>
using namespace std;
int cx,cy,fx,fy,xc,yc,xf,yf,df,dc,ans;
bool flag,f[15][15];
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
char ch[15][15];
int main(){
    for(int i=1;i<=10;i++)
        for(int j=1;j<=10;j++){
            cin>>ch[i][j];
            if(ch[i][j]=='.'||ch[i][j]=='F'||ch[i][j]=='C')
                f[i][j]=1;
            if(ch[i][j]=='F')
                fx=i,fy=j;
            else if(ch[i][j]=='C')
                cx=i,cy=j;
        }
    xc=cx,yc=cy,yf=fy,xf=fx;
    while((xc!=cx||yc!=cy||yf!=fy||xf!=fx||flag==0)&&ans<=10000){
        flag=1;
        if(f[xc+dx[dc]][yc+dy[dc]]==0) dc=(dc+1)%4;
        else{
            xc+=dx[dc];
            yc+=dy[dc];
        }
        if(f[xf+dx[df]][yf+dy[df]]==0) df=(df+1)%4;
        else{
            xf+=dx[df];
            yf+=dy[df];
        }
        if(xf==xc&&yf==yc){
            cout<<ans+1;
            return 0;
        }
        ans++;
    }
    cout<<0;
    return 0;
}
2020/8/29 17:31
加载中...