运行有问题,哪里不对?
查看原帖
运行有问题,哪里不对?
735164
pengqiushi楼主2022/8/4 17:27

代码如下:

#include<iostream>
using namespace std;
struct nodef {
	int x,y;
	int w=4;
} f;
struct nodec {
	int x,y;
	int w=4;
} c;
char a[15][15];
void bf() {
	if(f.w==1)
		f.y++;
	if(f.w==2)
		f.x++;
	if(f.w==3)
		f.y--;
	if(f.w==4)
		f.x--;
	return;
}
void bc() {
	if(c.w==1)
		c.y++;
	if(c.w==2)
		c.x++;
	if(c.w==3)
		c.y--;
	if(c.w==4)
		c.x--;
	return;
}
int main() {
	for(int i=1; i<=10; i++)
		for(int j=1; j<=10; j++)
			cin>>a[i][j];
	for(int i=1; i<=10; i++)
		for(int j=1; j<=10; j++) {
			if(a[i][j]=='C') {
				c.x=i;
				c.y=j;
			}
			if(a[i][j]=='F') {
				f.x=i;
				f.y=j;
			}
		}
	int gx,gy,cnt=0;
	while(1) {
		cnt++;
		bf();
		gx=f.x;
		gy=f.y;
		if(a[f.x][f.y]=='*') {
			f.x=gx;
			f.y=gy;
			if(f.w==4)
				f.w=1;
			else f.w++;
			bf();
		}
		bc();
		gx=c.x;
		gy=c.y;
		if(a[c.x][c.y]=='*') {
			c.x=gx;
			c.y=gy;
			if(c.w==4)
				c.w=1;
			else c.w++;
			bc();
		}
		if(f.x==c.x&&f.y==c.y) {
			cout<<cnt;
			return 0;
		}
	}
	cout<<"0";
	return 0;
}

运行结果如下:
输出了一个很大的数......

2022/8/4 17:27
加载中...