Массив — это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер — количество элементов в нем. Каждый элемент массива имеет свой номер (также называемый индексом), обращение к элементу массива осуществляется путем указания его индекса. В языке 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)
Выведите на экран все элементы массива с четными индексами (то есть
A[0]
,A[2]
,A[4]
, ...). - (B) Выведите на экран все четные элементы массива (то есть те элементы, которые являются четными числами).
- (C) Найдите количество положительных элементов в массиве. Программа должна считать массив и вывести единственное число – количество положительных элементов в массиве.
- (D) Дан массив. Найдите количество элементов массива, которые больше предыдущего элемента в этом массиве.
- (E)
Массив содержит только ненулевые числа.
Определите, есть ли в данном массиве два соседних элемента с одинаковыми знаками.
Программа должна вывести
YES
, если есть два числа с одинаковыми знаками иNO
иначе. - (F) Дан массив. Определите, сколько в этом массиве элементов, которые строго больше обоих своих соседей.
- (G) Дан массив. Переставьте элементы массива в обратном порядке без использования дополнительного массива. Программа должна считать массив, поменять порядок его элементов, вывести результат на экран (просто вывести элементы массива в обратном порядке – недостаточно!).
- (H) Переставьте соседние элементы массива (0-й элемент поменять с 1-м, 2-й с 3-м и т.д. Если элементов нечетное число, то последний элемент остается на своем месте)
- (I) Циклически сдвиньте элементы массива вправо (0-й элемент становится 1-м, 1-й становится 2-м, ..., последний становится 0-м, то есть массив {3, 5, 7, 9} превращается в массив {9, 3, 5, 7}).
- (J) Найдите значение наибольшего элемента в массиве.
- (K)
Дан массив, отсортированный по возрастанию (каждый элемент массива не меньше
предыдущего элемента, например,
{1, 2, 2, 3, 3, 3}
). Найдите количество различных чисел в этом массиве. - (L)
Дан массив из N элементов и номер элемента в массиве k.
Удалите из массива элемент с индексом k, сдвинув влево все элементы,
стоящие правее элемента с индексом k.
Программа получает на вход число N, затем N элементов массива,
затем число k. Программа должна вывести N-1 число – элементы
массива после удаления k–го элемента.
Программа должна осуществлять сдвиг непосредственно в массиве, а не делать это при выводе элементов. Также нельзя использовать дополнительный массив.
Например, при вводе
7 7 6 5 4 3 2 1 2
программа должна вывести (элементы массива индексируются с нуля!)7 6 4 3 2 1
- (M)
Дан массив из N чисел, число k и значение C.
Необходимо вставить в массив на позицию с индексом k элемент,
равные C, сдвинув все элементы имевшие индекс не менее k вправо.
Посколько при этом количество элементов в массиве увеличивается, необходимо сразу же
создавать массив размером N+1. Вставку необходимо осуществлять уже в считанном массиве,
не оставляя "свободного" места при считывании, не делая этого при выводе и не создавая дополнительного массива.
Например, при вводе
7 7 6 5 4 3 2 1 2 0
программа должна вывести7 6 0 5 4 3 2 1
- (N)
Дан массив. Посчитайте, сколько в нем пар элементов, равных друг другу.
Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать.
Например, в массиве
1 2 3 2 3
имеется две равны пары, в массиве1 1 1
– три пары, а в массиве1 1 1 1
– шесть пар.
Комментариев нет:
Отправить комментарий