这是我的代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int arr[10][10]= {0,0};
int t,i,j,n,a,b,c,d;
cin>>n;
for(t=1;t<=n;i++)
{
cin>>a>>b>>c>>d;
if((arr[a+1][b+1]==arr[c][d])||(arr[a+2][b+2]==arr[c][d])||(arr[a+3][b+3]==arr[c][d])||(arr[a+4][b+4]==arr[c][d])||(arr[a+5][b+5]==arr[c][d])||(arr[a+6][b+6]==arr[c][d])||(a[a+7][b+7]==a[c][d]))
{
cout<<"YES"<<endl;
}
else if(arr[a-1][b-1]==arr[c][d]||arr[a-2][b-2]==arr[c][d]||arr[a-3][b-3]==arr[c][d]||arr[a-4][b-4]==arr[c][d]||arr[a-5][b-5]==arr[c][d]||arr[a-6][b-6]==arr[c][d]||a[a-7][b-7]==a[c][d])
{
cout<<"YES"<<endl;
}
else if(arr[a-1][b+1]==arr[c][d]||arr[a-2][b+2]==arr[c][d]||arr[a-3][b+3]==arr[c][d]||arr[a-4][b+4]==arr[c][d]||arr[a-5][b+5]==arr[c][d]||arr[a-6][b+6]==arr[c][d]||a[a-7][b+7]==a[c][d])
{
cout<<"YES"<<endl;
}
else if(arr[a+1][b-1]==arr[c][d]||arr[a+2][b-2]==arr[c][d]||arr[a+3][b-3]==arr[c][d]||arr[a+4][b-4]==arr[c][d]||arr[a+5][b-5]==arr[c][d]||arr[a+6][b-6]==arr[c][d]||a[a+7][b-7]==a[c][d])
{
cout<<"YES"<<endl;
}
else
{
cout<"NO"<<endl;
}
}
return 0;
}
代码块显示错误:
invalid types 'int[int]' for array subscript
我不明白为什么会出现这种类型错误。
答案 0 :(得分:2)
a[a+7][b+7]==a[c][d]
您使用a
代替arr
。
答案 1 :(得分:0)
请注意您已使用
a[a+7][b-7] instead of arr[a+7][b-7]
所有if语句的最后条件。这就是为什么它抛出该错误为 您的情况中的'a'是一个int,而您试图找到一个[a + 7] [b-7] => int [int] [int]
最后你也写了
cout<"NO"<<endl;
应该是
cout<<"NO"<<endl; // note the two angular brackets