佬们,我这个问题在哪啊
查看原帖
佬们,我这个问题在哪啊
896371
xduliu楼主2023/10/15 23:23
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char a[11][11];
    int i,j,xn,yn,xr,yr,tn=1,tr=1,n=0,x[4]={-1,0,1,0},y[4]={0,1,0,-1};
    for(i=0;i<10;i++)
        for(j=0;j<11;j++)
    {
        scanf("%c",&a[i][j]);
        if(a[i][j]=='C')
           {
               xn=i;
               yn=j;
           }
           else if(a[i][j]=='F')
           {
               xr=i;
               yr=j;
           }
    }
    while(n<2000)
    {
            if(xn+x[tn-1]<10&&yn+y[tn-1]<10&&xn+x[tn-1]>=0&&yn+y[tn-1]>=0&&a[xn+x[tn-1]][yn+y[tn-1]]!='*')
            {
                xn+=x[tn-1];
                yn+=y[tn-1];
            }
            else
            {
                tn=tn==4?1:tn+1;
            }
            if(xr+x[tr-1]<10&&yr+y[tr-1]<10&&xr+x[tr-1]>=0&&yr+y[tr-1]>=0&&a[xr+x[tr-1]][yr+y[tr-1]]!='*')
            {
                xr+=x[tr-1];
                yr+=y[tr-1];
            }
            else
            {
                tr=tr==4?1:tr+1;
            }
            n++;
            if(xn==xr&&yn==yr)
            {
                printf("%d",n);
                return 0;
            }
    }
    printf("0");
    return 0;
}

这个是我的代码,只有22分,其他全红。第一个测试点就错了,输入是..... ........* *......... .......... ........ *....** F........ ..... .C....... ........ 输出是58 我这个代码跑出来也是58啊,哪错了啊

2023/10/15 23:23
加载中...