错误:无效类型' int [int]'对于数组下标为什么

时间:2016-10-08 17:49:00

标签: c++ arrays

这是我的代码:

#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

我不明白为什么会出现这种类型错误。

2 个答案:

答案 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