编译错误,求助大佬!
查看原帖
编译错误,求助大佬!
543206
shiroko2008楼主2021/8/27 13:43

dev-c++的报错信息:

[Error] no match for 'operator[]' (operand types are 'add' and 'int')

以下为代码: PS:以“//此处报错!”表示此处报错

#include<iostream>
using namespace std;
struct add{ //位置信息 
	int x,y;
	bool f;
	short a;//angle
}fj,c;
int main()
{
	char map [10][10];
	for (int i=0;i!=10;i++) for (int j=0;j!=10;j++) {
		cin>>map[i][j];
		if (map[i][j]=='F') { //赋值 
			fj.x=i;
			fj.y=j;
			fj.a=0;
		}
		if (map[i][j]=='C') {
			c.x=i;
			c.y=j;
			c.a=0;
		}
	}
	int i;
	for (i=1;i<=10000;i++) {//模拟 
		fj.f=0;
		c.f=0;
		if ((fj.a==0&&fj.x-1>=0&&c[fj.x-1][fj.y]=='*')||(fj.a==90&&fj.y+1<=9&&c[fj.x][fj.y+1]=='*')||(fj.a==180&&fj.x+1<=9&&c[fj.x+1][fj.y]=='*')||(fj.a==270&&fj.y-1>=0&&c[fj.x][fj.y-1]=='*')) fj.f=1;//_此处报错!_
		if ((c.a==0&&c.x-1>=0&&c[c.x-1][c.y]=='*')||(c.a==90&&c.y+1<=9&&c[c.x][c.y+1]=='*')||(c.a==180&&c.x+1<=9&&c[c.x+1][c.y]=='*')||(c.a==270&&c.y-1>=0&&c[c.x][c.y-1]=='*')) c.f=1;//_此处报错!_
//farmer john
		if (fj.f==1) {
			if (fj.a=0) fj.x--;
			if (fj.a=90) fj.y++;
			if (fj.a=180) fj.x++;
			if (fj.a=270) fj.y--;
		}
		else fj.a=(fj.a+90)%360;
//牛 
		if (c.f==1) {
			if (c.a=0) c.x--;
			if (c.a=90) c.y++;
			if (c.a=180) c.x++;
			if (c.a=270) c.y--;
		}
		else c.a=(c.a+90)%360;
		if (fj.x==c.x&&fj.y==c.y) {
			cout<<i;
			return 0;
		}
	}
	cout<<'0';
	return 0;
} 
2021/8/27 13:43
加载中...