break;
case 2:
play(magic);
break;
case 3:
cout << "До свидания !\n";
break;
}
}while(option != 3);
return 0;
}
// Сыграем в игру.
void play(int m)
{
int t, x;
for(t=0; t<100; t++) {
cout << "Угадайте магическое число: ";
cin >> x;
if(x==m) {
cout << "** Правильно **\n";
return;
}
else
if(x<m) cout << "Маловато.\n";
else cout << "Многовато.\n";
}
cout << "Вы использовали все шансы угадать число. " << "Попытайтесь снова.\n";
}
Глава 5: Массивы и строки
В этой главе мы рассматриваем массивы. Массив (array) — это коллекция переменных одинакового типа, обращение к которым происходит с применением общего для всех имени. В C++ массивы могут быть одно- или многомерными, хотя в основном используются одномерные массивы. Массивы представляют собой удобное средство группирования связанных переменных.
Чаще всего используются символьные массивы, в которых хранятся строки. Как упоминалось выше, в C++ не определен встроенный тип данных для хранения строк. Поэтому строки реализуются как массивы символов. Такой подход к реализации строк дает С++-программисту больше "рычагов" управления по сравнению с теми языками, в которых используется отдельный строковый тип данных.
Одномерный массив — это список связанных переменных. Для объявления одномерного массива используется следующая форма записи.
тип имя_массива [размер];
Здесь с помощью элемента записи тип объявляется базовый тип массива. Базовый тип определяет тип данных каждого элемента, составляющего массив. Количество элементов, которые будут храниться в массиве, определяется элементом размер. Например, при выполнении приведенной ниже инструкции объявляется int-массив (состоящий из 10 элементов) с именем sample.
int sample[10];
Индекс идентифицирует конкретный элемент массива.
Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс описывает позицию элемента внутри массива. В C++ первый элемент массива имеет нулевой индекс. Поскольку массив sample содержит 10 элементов, его индексы изменяются от 0 до 9. Чтобы получить доступ к элементу массива по индексу, достаточно указать нужный номер элемента в квадратных скобках. Так, первым элементом массива sample является sample[0], а последним — sample[9]. Например, следующая программа помещает в массив sample числа от 0 до 9.
#include <iostream>
using namespace std;
int main()
{
int sample[10]; // Эта инструкция резервирует область памяти для 10 элементов типа int.
int t;
// Помещаем в массив значения.
for(t=0; t<10; ++t) sample[t]=t;
// Отображаем массив.
for(t=0; t<10; ++t)
cout << sample[t] << ' ';
return 0;
}
В C++ все массивы занимают смежные ячейки памяти. (Другими словами, элементы массива в памяти расположены последовательно друг за другом.) Ячейка с наименьшим адресом относится к первому элементу массива, а с наибольшим — к последнему. Например, после выполнения этого фрагмента кода
int i [7];
int j;
for(j=0; j<7; j++)i[j]=j;
массив i будет выглядеть следующим образом.
Для одномерных массивов общий размер массива в байтах вычисляется так:
всего байтов = размер типа в байтах х количество элементов.