/* Теперь выводим значения и их сумму */
displayArray( inputValues , numberOfValues ) ;
cout << "Сумма введённых чисел равна "
<< sumArray( inputValues , numberOfValues )
<< endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
/* displayArray — отображает элементы массива integerArray длиной sizeOfloatArray */
void displayArray( int integerArray[ ] , int sizeOfArray )
{
cout << "В массиве хранятся"
<< " следующие значения:\n" ;
for ( int i = 0 ; i < sizeOfArray ; i++ )
{
cout.width( 3 ) ;
cout << i << ": " << integerArray[ i ] << endl ;
}
cout << endl ;
}
_________________
94 стр. Часть 2. Становимся функциональными программистами
/* sumArray — возвращает сумму элементов целочисленного массива */
int sumArray( int integerArray[ ] , int sizeOfArray )
{
int accumulator = 0 ;
for ( int i = 0 ; i < sizeOfArray ; i++ )
{
accumulator += integerArray[ i ] ;
}
return accumulator ;
}
Программа ArrayDemo начинается с объявления прототипов функций sumArray( ) и displayArray( ), которые понадобятся нам позже. Главная часть программы содержит довольно скучный цикл ввода значений. На этот раз вводимые значения сохраняются в массиве inputValues.
Если введённое значение отрицательно, цикл прерывается при помощи инструкции break, если же нет — оно копируется в массив. Целочисленная переменная numberOfValues используется в качестве индекса массива. Она инициализирована нулём в начале цикла for. При каждой итерации индекс увеличивается. В условии выполнения цикла for осуществляется контроль за тем, чтобы количество введённых чисел не превышало 128, т.е. размера массива ( после введения 128 чисел программа переходит к выводу элементов массива на экран независимо от того, ввёл пользователь отрицательное число или нет ).
«В объявлении массива inputValues было указано, что его максимальная длина равна 128. При записи большего числа данных, чем определено в объявлении, ваша программа может работать неправильно и даже аварийно завершать работу. Поэтому лучше застраховаться и оставить больше места для хранения данных. Неважно, насколько велик массив; всегда нужно следить за тем, чтобы операции с массивом не приводили к выходу за его пределы.»
[Атас!]
Функция main заканчивается выводом на экран содержимого массива и суммы его элементов.
«Среда Dev-C++ может помочь вам в работе с исходными текстами, в которых имеется много функций. На рис. 7.1 показано содержимое вкладки Classes ( Классы ), в которой перечисляются все функции в исходном файле. Двойной щелчок на имени функции переносит вас в окне редактирования в строку с этой функцией.»
[Советы]
Функция displayArray( ) содержит обычный цикл for, который используется для прохождения по массиву. Каждый очередной элемент массива добавляется к переменной accumulator. Передаваемый функции параметр sizeOfArray включает количество значений, содержащихся в массиве.
Напомню ещё раз, что индекс массива в С++ отсчитывается от 0 , а не от 1. Кроме того, обратите внимание, что цикл for прерывается в тот момент, когда значение i становится равным sizeOfArray. Вы же не хотите добавлять все 128 элементов массива integerArray к accumulator? Ни один элемент массива, индекс которого больше или равен числу sizeOfArray, учитываться не будет. Вот как выглядит пример работы с этой программой:
_________________