Часто возникает необходимость хранить не одну переменную, а набор однотипных переменных. Например, список учащихся класса – это набор данных строкового типа, координаты вершин многоугольника или коэффициенты многочлена – это набор числовых данных. Для хранения наборов данных используются структуры данных. Основная структура данных – это массив.
Массив — это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер — количество элементов в нем. Каждый элемент массива имеет свой номер (также называемый индексом), обращение к элементу массива осуществляется путем указания его индекса. В языке C++ элементы нумеруются начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива.
Массив в языке C++ задается следующим образом:
тип_элементов идентификатор[размер];
где тип_элементов — произвольный тип данных языка C++,
который будут иметь элементы массива, например, int, double
и т.д.; идентификатор — имя массива, размер — число
элементов в нем.
К элементу массива можно обращаться, как идентификатор[индекс].
Например, если было сделано объявление
double A[5];
то таким образом создается 5 элементов массива типа double:
A[0], A[1], A[2], A[3], A[4].
Пример программы, которая создает массив типа int[],
заданного пользователем размера,
считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива
число 1, затем выводит результат на экран:
#include<iostream>
using namespace std;
int main()
{
int n; // Размер массива
int i; // Счетчик в циклах
cout<<"Введите количество чисел: ";
cin>>n; // Считываем размер массива
int arr[n]; // Объявление массива
// Считываем массив
cout<<"Введите "<<n<<" целых чисел: ";
for(i=0;i<n;++i)
cin>>arr[i];
// Прибавляем по 1 к каждому элементу
for(i=0;i<n;++i)
arr[i]+=1;
// Выводим массив на экран
for(i=0;i<n;++i)
cout<<arr[i]<<" ";
// Переведем курсор на новую строку
cout<<endl;
return 0;
}
В этом примере при помощи // обозначается начало комментария, весь текст
после начала комментария и до конца строки компилятором игнорируется.
Второй способ объявления комментария: в начале комментария поставить
знаки /*, а в конце – */. Это позволяет
делать комментарии, занимающие несколько строк. В языке C допустимы только
такие комментарии.
В упражнениях подразумевается, что массив вводится, как в приведенном примере (сначала –
количество элементов в массиве, потом – все элементы массива по одному).
Все массивы – числовые типа int[].
A[0], A[2], A[4], ...).
YES, если есть два числа с одинаковыми знаками
и NO иначе.
{1, 2, 2, 3, 3, 3}). Найдите количество различных чисел в этом массиве.
Программа получает на вход число N, затем N элементов массива, затем число k. Программа должна вывести N-1 число – элементы массива после удаления k–го элемента.
Программа должна осуществлять сдвиг непосредственно в массиве, а не делать это при выводе элементов. Также нельзя использовать дополнительный массив.
Например, при вводе
7
7 6 5 4 3 2 1
2
программа должна вывести (элементы массива индексируются с нуля!)
7 6 4 3 2 1
Посколько при этом количество элементов в массиве увеличивается, необходимо сразу же создавать массив размером N+1. Вставку необходимо осуществлять уже в считанном массиве, не оставляя "свободного" места при считывании, не делая этого при выводе и не создавая дополнительного массива.
Например, при вводе
7
7 6 5 4 3 2 1
2 0
программа должна вывести
7 6 0 5 4 3 2 1
Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать.
Например, в массиве 1 2 3 2 3 имеется две равны пары, в массиве 1 1 1 – три пары, а в
массиве 1 1 1 1 – шесть пар.