Как устранить ошибку «недопустимые типы ‘int [x] [const char*]’ для индекса массива»?

#c

#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. nums["i<start" 1] не имеет никакого смысла. Что бы это ни было, это неправильно.

2. @SamVarshavchik Это может быть гениальный эксплойт переполнения стека.

3. @nicomp 🙂 но нет.

Ответ №1:

Ну, компилятор уже говорит, в чем проблема. nums["i<start" 1] и nums["z-start" 1] приводит к этой ошибке. Вы не можете индексировать элемент через a string (также вызываемый const char* ). Просто замените его на nums[i-start 1] (или что бы вы ни имели в виду < ) и nums[z-start 1] .

Кроме того, ваш код написан не очень хорошо. Не используйте короткие имена переменных, такие как N или g или c2 , это просто сбивает с толку (предпочитайте длинные / логические). Комментирование вашего проекта и изучение ошибок компилятора также никогда не помешает.