死循环!!求助大佬(样例没过)
查看原帖
死循环!!求助大佬(样例没过)
457431
Li_wenjie楼主2021/8/20 09:33
#include<bits/stdc++.h>
using namespace std;
char a[11][11];
int main()
{
	int xniu,yniu,xf,yf,niumain=1,fmian=1,ans=0;
	//一为北,二为东,三为南,四为西 
	for(int i=1;i<=10;i++)
		for(int j=1;j<=10;j++)
		{
			cin>>a[i][j];
			if(a[i][j]=='F') xf=i,yf=j;
			if(a[i][j]=='C') xniu=i,yniu=j;
		}
	while((xniu!=xf)||(yniu!=yf)&&ans<1000)
	{
		cout<<" ( "<<xniu<<" "<<(char)(yniu+'A'-1) <<" ) "<<"   "<<" ( "<<xf<<" "<<(char)(yf+'A'-1) <<" ) "<<endl;
		if(fmian==1)
		{
			if(a[xf-1][yf]!='*'&&xf!=1)
			{
				xf--;
				
			}
			else
			{
				fmian++;
				cout<<"farmer向右转"<<endl; 
			}
		}
		else if(fmian==2)
		{
			if(a[xf][yf+1]!='*'&&yf!=10)
			{
				yf++;
			}
			else
			{
				fmian++;
				cout<<"farmer向下转"<<endl; 
			}
		}	
		else if(fmian==3)
		{
			if(a[xf+1][yf]!='*'&&xf!=10)
			{
				xf++;
			}
			else
			{
				fmian++;
			//	cout<<"farmer向左转"<<endl; 
			}
		}
		else if(fmian==4)
		{
			if(a[xf][yf-1]!='*'&&yf!=1)
			{
				yf--;
			}
			else
			{
				fmian=1;
			//	cout<<"farmer向上转"<<endl; 
			}
		}
		if(niumain==1)
		{
			if(a[xniu-1][yf]!='*'&&xniu!=1)
			{
				xniu--;
			}
			else
			{
				niumain++;
			//	cout<<"niu向右转"<<endl; 
			}
		}
		else if(niumain==2)
		{
			if(a[xniu][yf+1]!='*'&&yf!=10)
			{
				yf++;
			}
			else
			{
				niumain++;
				cout<<"niu向下转"<<endl; 
			}
		}	
		else if(niumain==3)
		{
			if(a[xniu+1][yf]!='*'&&xniu!=10)
			{
				xniu++;
			}
			else
			{
				niumain++;
				cout<<"niu向左转"<<endl; 
			}
		}
		else if(niumain==4)
		{
			if(a[xniu][yniu-1]!='*'&&yniu!=1)
			{
				yniu--;
			}
			else
			{
				niumain=1;
				cout<<"niu向上转"<<endl; 
			}
		}
		ans++; 
		
	}
	cout<<ans;
			
			
	
}
2021/8/20 09:33
加载中...