如何解决错误“无效类型'int [x] [const char *]'的数组下标”?

时间:2016-10-02 19:49:44

标签: c++

我一直在主题中得到错误,下面是代码。特别是在常数N的类型中;我想数10 100和100到无限。

有什么问题以及如何最好地解决它?

#include <iostream>
#include <stdio.h>
#define N 100
#define start 1

int main()
{
    system("cls");
    long int a1,a2;
    long int res1,res2;
    long int c1,c2;
    a1=start;
    a2=a1+N;
    res1=(a2+2)/5;
    res2=(a2+4)/6;

    long int i,q,z,g;
    int nums[N];

    for (i=start; i<(start + N); i++) {
        nums["i<start"+1]=10*i+8;
    }
    for (i=1; i<N; i++) {
        for (q=1;q<=res1;q++) {
            c2=(a2+q+2)/(10*q-8);
            c1=(a1+q+2)/(10*q-8)+1;

            for (g=c1;g<c2;g++) {
                z=(10*q+8)*g-(q-2);
                if ((z-start+1)<N)
                    nums[z-start+1]=0;
                else 
                    break;
            }
        }
        for (q=1;q<=res2;q++) {
            c2=(a2+q)/(10*q-6);
            c1=(a1+q)/(10*q-6)+1;
            for (g=c1;g<=c2;g++) {
                z=(10*q-6)*g+q;
                if ((z-start+1)<N)
                    nums["z-start"+1]=0;
                else 
                    break;
            }
        }

    }
    for (i=1;i<N;i++)
        return 0;

}

1 个答案:

答案 0 :(得分:2)

好吧,编译器已经说出了什么问题。 nums["i<start"+1]nums["z-start"+1]导致该错误。您无法通过string(也称为const char*)索引元素。只需将其替换为nums[i-start+1](或您对<)和nums[z-start+1]的意思。

此外,您的代码写得不是很好。不要使用Ngc2之类的短变量名称,这只会令人困惑(更喜欢长/逻辑的)。评论您的项目并了解编译器错误也永远不会伤害。