#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
, это просто сбивает с толку (предпочитайте длинные / логические). Комментирование вашего проекта и изучение ошибок компилятора также никогда не помешает.