wangzeyu2013 2024-08-12 17:49 采纳率: 0%
浏览 38

[Error] invalid types 'int[int]' for array subscript为啥报错了

请告诉我为啥报错
[Error] invalid types 'int[int]' for array subscript


#include<bits/stdc++.h>
using namespace std;
int main(){
    int k,f[31][31][31][31][31]={},a[5]={};
    cin>>k;
    for(int i=0;i<k;i++) cin>>a[i];
    f[1][1][1][1][1]=1;
    for(int i=1;i<=a[0];i++)
        for(int j=1;j<=a[1];j++)
            for(int l=1;l<=a[2];l++)
                for(int h=1;h<=a[3];h++)
                    for(int f=1;f<=a[4];f++)
                        f[i][j][l][h][f]=f[i-1][j][l][h][f]+f[i][j-1][l][h][f]+f[i][j][l-1][h][f]+f[i][j][l][h-1][f]+f[i][j][l][h][f-1];
    cout<<f[a[0]][a[1]][a[2]][a[3]][a[4]];
    return 0;
} 
  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2024-08-12 17:50
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    这个错误是在声明二维数组f时,使用了错误的类型声明。在C++中,数组索引是从0开始的,所以你需要将一个整数的大小替换为相应的数组大小。例如,如果我们要创建一个长度为6的数组,我们需要使用长度为6的指针。

    下面是修改后的代码:

    #include <iostream>
    using namespace std;
    
    int main() {
        int k, f[6][6][6][6][6] = {}, a[5] = {};
    
        cin >> k;
        for (int i = 0; i < k; i++) cin >> a[i];
    
        f[1][1][1][1][1] = 1;
        for (int i = 1; i <= a[0]; i++)
            for (int j = 1; j <= a[1]; j++)
                for (int l = 1; l <= a[2]; l++)
                    for (int h = 1; h <= a[3]; h++)
                        for (int f = 1; f <= a[4]; f++)
                            f[i][j][l][h][f] = f[i - 1][j][l][h][f] + f[i][j - 1][l][h][f] + f[i][j][l - 1][h][f] + f[i][j][l][h - 1][f] + f[i][j][l][h][f - 1];
    
        cout << f[a[0]][a[1]][a[2]][a[3]][a[4]];
        return 0;
    }
    

    注意:在定义二维数组时,需要指定数组的行数和列数。在这个例子中,我们使用了5个元素来定义一个长度为6的数组。同时,我们也需要确保数组的大小能够正确地存储给定的向量中的所有元素。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月12日