Потому что именно так можно коротко и лаконично работать с массивом. Например, давайте решим такое задание: заполнить 100 элементов массива случайными числами. Без цикла while или for этот код займёт ни много, ни мало 100 строк и выглядело бы это вот так:
arr[0] = rand();arr[1] = rand();...arr[100] = rand();Во-первых - это очень затрудняет читабельность кода. Во-вторых, если Вам придётся решать задачу, предполагающую ввод количества элементов, то Вы уже не сможете просто так написать N элементов, поскольку Вы не знаете, какое число даст программе человек. В таком случае Вам бы пришлось использовать рекурсивную функцию.
Вместо этого люди решили использовать цикл - то, что повторяет тело цикла i раз ("i - это итератор - счётчик цикла"). Давайте посмотрим, как будет выглядеть наша задача с циклом:
for(int i = 0; i < 100; i++){ arr[i] = rand();}В данном случае, как я писал выше, с каждой итерацией будет выполняться оператор присваивания случайного ("на самом деле псевдослучайного, но тема не об этом") числа элементу с индексом ("положением элемента в массиве"), равным номеру итератора.
# include <iostream>
# include <time.h>
using namespace std;
int main() {
int n, m;
cout << "n = ";
cin >> n; //n и m - степени данных многочленов
cout << "m = ";
cin >> m;
float *a = new float [n + 1];
float *b = new float [m + 1];
float *c = new float [n + m + 1]; //n + m - степень нового многочлена
//заполняем массивы a и b
for (int i = 0; i < n + 1; i++) {
cin >> a[i];
}
cout << endl;
for (int i = 0; i < m + 1; i++) {
cin >> b[i];
}
cout << endl;
for (int k = 0; k < n + m + 1; k++){
float S = 0; //произведение коэф-в
for (int i = 0; i < n + 1; i++)
for (int j = 0; j < m + 1; j++)
if (i + j == k) S += a[i] * b[j];
c[k] = S;
}
//создание массива для коэф-в производной
float *d = new float[n + m + 1];
//заполнение массива d
srand((unsigned int)time(NULL));
for (int i = 0; i < n + m + 1; i++) //псевдослучайное число
d[i] = rand() % 15;
//изменение и вывод массива d
for (int k = 1; k < n + m + 1; k++) {
d[k - 1] = k * c[k];
cout << d[k - 1] << " ";
}
system("pause");
return 0;
}