22求助!在自己机子上跑是对的,放上去就WA
查看原帖
22求助!在自己机子上跑是对的,放上去就WA
1225971
vacilating楼主2024/4/4 10:50
#include<stdio.h>
int main(){
	char a[13][13]={},ch;
	int n1=1,n2=1,t=0;
	int C_p1=0,C_p2=0,F_p1=0,F_p2=0,Label_c=1,Label_f=1;
	for(n1=1;n1<=10;n1++){
	for(n2=1;n2<=10;n2++){
	while((ch=getchar())=='\n'||ch==' ')continue;
	a[n1][n2]=ch;
	if(a[n1][n2]=='C'){C_p1=n1;C_p2=n2;}
	if(a[n1][n2]=='F'){F_p1=n1;F_p2=n2;}
		}
	}
	getchar();getchar();
	//设置结束条件 
	for(t=0;(C_p1!=F_p1||C_p2!=F_p2);){
		t++;
			//C的运动轨迹
			if(a[C_p1-1][C_p2]!='*'&&C_p1-1 != 0&&Label_c==1)C_p1--;//向上走 
			else if(Label_c==1) Label_c=2;//转向向右
			else if(a[C_p1][C_p2+1]!='*'&&C_p2+1!=11&&Label_c==2)C_p2++;//向右走
			else if(Label_c==2) Label_c=3;//转向向下
			else if(a[C_p1+1][C_p2]!='*'&&C_p1+1!=11&&Label_c==3) C_p1++;//向下走
			else if(Label_c==3) Label_c = 4;//转向向左
			else if(a[C_p1][C_p2-1]!='*'&&C_p2-1!=0&&Label_c==4)C_p2--;//向左走
			else if(Label_c==4) Label_c = 1;//转向向上 
			
			//F的运动轨迹 
			if(a[F_p1-1][F_p2]!='*'&&F_p1-1 != 0&&Label_f==1)F_p1--;//向上走 
			else if(Label_f==1) Label_f=2;//转向向右
			else if(a[F_p1][F_p2+1]!='*'&&F_p2+1!=11&&Label_f==2)F_p2++;//向右走
			else if(Label_f==2) Label_f=3;//转向向下
			else if(a[F_p1+1][F_p2]!='*'&&F_p1+1!=11&&Label_f==3) F_p1++;//向下走
			else if(Label_f==3) Label_f = 4;//转向向左
			else if(a[F_p1][F_p2-1]!='*'&&F_p2-1!=0&&Label_f==4)F_p2--;//向左走
			else if(Label_f==4) Label_f = 1;//转向向上 	
		if(C_p1==F_p1&&C_p2==F_p2)break;
		if(t>=2000)break;	
	}
	//判断永远不会遇见的情况 
	if(t>=2000)t=0;
	printf("%d",t);
	
}
//scanf("%c",&a[n1][n2]);
//	if(a[n1][n2]=='\n')	scanf("%c",&a[n1][n2]);
2024/4/4 10:50
加载中...