Ожидаемый результат - 2000, но он останавливается в 1980 году.
Примечание: выполнение начинается с 20 , а не с 0 как int i = 1
Код:
#include <iostream> using namespace std; int main() { const int iarraysize = 100; int i = 1; int iarray[iarraysize]; while (i < iarraysize) { iarray[i] = 20 * i; cout << iarray[i++] << "\n"; } }
Массивы начинаются с 0 и заканчиваются на один раньше их размера.
Однако вам не нужен массив.
#include <iostream> int main() { int limit = 100; int i = 1; while (i <= limit) { std::cout << (i++ * 20) << "\n"; } }
Массив идет от 0 до 99, вы начинаете с 1, и он только до 99 (99 * 20 = 1980).
Вы ожидаете 2000, но нет iarray[100] (массив из границы).
iarray[100]
Последнее значение переменной i, которое меньше 100, равно 99. Таким образом, 20 * 99 равно 1990.
i
1990
Если вы хотите получить 2000, то переписайте l oop как
int i = 0; while (i < iarraysize) { iarray[i] = 20 * (i + 1); cout << iarray[i++] << "\n"; }