C语言代码,输出是正确的,为什么wa啊,邪门!!!
查看原帖
C语言代码,输出是正确的,为什么wa啊,邪门!!!
514369
沃焦住就M楼主2021/8/23 08:58
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int a,b,c,d;

int move(int *a,int *b,int s)
{
    switch(s%4)
    {
    case 0:(*a)--;break;
    case 1:(*b)++;break;
    case 2:(*a)++;break;
    case 3:(*b)--;break;
    default:return 0;
    }

return 1;
}

int main()
{
    int i,j,s1=0,s2=0;//cow(a,b),s1;man(c,d),s2
    char map[10][10];
   int obs[10][10];
    memset(map,0,sizeof(map));
    memset(obs,0,sizeof(obs));
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
            {
                scanf("%c",&map[i][j]);
                if(map[i][j]=='F')
                {
                    c=i;
                    d=j;
                }
                if(map[i][j]=='C')
                {
                   a=i;
                    b=j;
                }
                if(map[i][j]!='*')
                {
                   obs[i][j]=1;//0为障碍,1为可走
                }
            }
            getchar();
    }

    int count;
    for(count=0;!(a==c&&b==d);count++)
    {
       move(&a,&b,s1);
       if(a<0||b<0||a>9||b>9||obs[a][b]==0) {move(&a,&b,s1+2);s1++;}
       move(&c,&d,s2);
       if(c<0||d<0||c>9||d>9||obs[c][d]==0) {move(&c,&d,s2+2);s2++;}
       if(count>160000) {printf("%d",0);return 0;}
    }

    printf("%d\n",count);


    return 0;
}

2021/8/23 08:58
加载中...