错误:数组下标'int[int]'的类型无效,原因

error: invalid types 'int[int]' for array subscript why

本文关键字:int 类型 无效 原因 数组 错误 下标      更新时间:2023-10-16

这是我的代码:

#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;
}

代码块显示错误:

数组下标的int[int]类型无效

我不明白为什么会出现这个错误

a[a+7][b+7]==a[c][d]

a代替arr

请注意您已使用

a[a+7][b-7] instead of arr[a+7][b-7]

出现在所有if语句的最后条件中。这就是它抛出错误的原因在你的例子中'a'是一个整型,你试图找到a[a+7][b-7] =>int (int) (int)

在结尾处也要写

cout<"NO"<<endl;

应该是

cout<<"NO"<<endl; // note the two angular brackets