为什么在DeV-C++上运行第一个测试点正确,但却过不了?
查看原帖
为什么在DeV-C++上运行第一个测试点正确,但却过不了?
574847
tqychy楼主2021/10/28 16:08

C语言

#include<stdio.h>
const int in=1<<20;//时间很大就认为追击不到。 
int main()
{int i=0,j=0,k1=0,k2=0,fy=0,fx=0,cx=0,cy=0,time=0;
int direction[4][2]={{0,-1},{1,0},{0,1},{-1,0}};///定义方向数组 。 
char map[100][100];//存地图。 
for(i=0;i<10;i++)//读入地图并标记F和C的初始位置。 
{
    for(j=0;j<10;j++)
	{
	    scanf("%c",&map[i][j]);
	    if(map[i][j]=='F')
	    {
	    	fy=i;
	    	fx=j;
		}
		else if(map[i][j]=='C')
		{
			cx=j;
			cy=i;
		}
    }
    getchar();
}
while(time<=in)
{
	if(cx==fx&&fy==cy){break;}//追击到了,退出循环 
	time++;
	cx+=direction[k1][0];//向前走 
	cy+=direction[k1][1];
	if(cx<0||cy>=10||cy<0||cx>=10||map[cy][cx]=='*')//如果碰到障碍物或出界。 
	{
		cy-=direction[k1][1];
		cx-=direction[k1][0];
		if(k1<3){k1++;}//转弯。 
		else{k1=0;}
	}
	fx+=direction[k2][0];//往前 
	fy+=direction[k2][1];
	if(map[fy][fx]=='*'||fy>=10||fx<0||fy<0||fx>=10)//如果碰到障碍物或出界。
	{
		fy-=direction[k2][1];
		fx-=direction[k2][0];
		if(k2==3){k2=0;}//转弯。
		else{k2++;}
	}
}
if(time>=in){printf("0");}
else{printf("%d",time);}
return 0;
}8

``
2021/10/28 16:08
加载中...