int valueArray[ 128 ];
/* определение индекса, используемого для доступа к элементам массива; его значение не должно превышать 128 */
for ( int i = 0 ; i < 128 ; i++ )
{
cin >> value ;
/* выходим из цикла, если пользователь вводит отрицательное число */
if ( value < 0 ) break ;
valueArray[ i ] = value ;
}
Во второй строке кода ( без учёта комментариев ) объявлен массив valueArray . Первым в объявлении указывается тип элементов массива ( в нашем случае это int ), за ним следует имя массива, последним элементом являются открывающая и закрывающая квадратные скобки, в которых записывается максимальное число элементов массива. В нашем случае массив valueArray может содержать до 128 целочисленных значений.
Компьютер считывает число с клавиатуры и сохраняет его в следующем элементе массива valueArray . Доступ к элементам массива обеспечивается с помощью имени массива и индекса, указанного в квадратных скобках. Первый элемент массива обозначается как valueArray[ 0 ] , второй — как valueArray[ 1 ] и т.д.
Запись valueArray[ i ] представляет собой i -й элемент массива. Индексная переменная i должна быть перечислимой, т.е. её типом может быть char , int или long . Если valueArray — массив целых чисел, то элемент valueArray[ i ] имеет тип int .
В представленной ниже программе осуществляется ввод последовательности целых чисел ( до первого отрицательного числа ), затем эта последовательность и сумма её элементов выводятся на экран.
/* ArrayDemo — демонстрирует использование массивов. Считывает последовательность целых чисел и отображает их по порядку */
#include
#include
#include
using namespace std ;
/* объявления прототипов функций */
int sumArray( int integerArray[ ] , int sizeOfloatArray ) ;
void displayArray( int integerArray[ ] , int sizeOfloatArray ) ;
_________________
93 стр. Глава 7. Хранение последовательностей в массивах
int main( int nArg , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
/* Описываем счётчик цикла */
int nAccumulator = 0 ;
cout << "Эта программа суммирует числа,"
<< " введённые пользователем\n" ;
cout << "Цикл прерывается, когда"
<< " пользователь вводит\n"
<< "отрицательное число\n" ;
/* Сохраняем числа в массиве */
int inputValues[ 128 ] ;
int numberOfValues = 0 ;
for ( numberOfValues = 0 ; numberOfValues < 128 ; numberOfValues++ )
{
/* Ввод очередного числа */
int integerValue ;
cout << "Введите следующее число: " ;
cin >> integerValue ;
/* Если оно отрицательное... */
if ( integerValue < 0 )
{
/* ...тогда выходим из цикла */
break ;
}
/* ...иначе сохраняем число в массиве */
inputValues[ numberOfValues ] = integerValue ;
}
/* Теперь выводим значения и их сумму */
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 чисел программа переходит к выводу элементов массива на экран независимо от того, ввёл пользователь отрицательное число или нет ).
Читать дальше