Прежде всего, ваш код ссылается на индекс, выходящий за пределы диапазона массива.
В первом цикле while
i
увеличивается до 1001
и ссылается на squareNumbers[1000]
, что превышает максимально допустимый индекс (999).
Чтобы это исправить,
- удалить
=
в первом цикле.
- уменьшить
i
на 1 после первого цикла.
код:
int squareNumbers[1000];
int i = 0;
int sum = 0;
while (i < 1000){
squareNumbers[i] = i*i;
i++;
}
i--;
while (i >= 0) {
sum= sum + squareNumbers[i];
i--;
}
printf("Sum: %d", sum);
Однако это будет сумма от 0*0
до 999*999
в диапазоне i
.
Так что вы можете изменить с
squareNumbers[i] = i*i;
до
squareNumbers[i] = (i+1)*(i+1);
Таким образом, он имеет сумму от 1*1
до 1000*1000
.