Массивы
Формат описания массива:
тип_элементов имя [размер1] [размер2] … [размерN]
Вариант 1
int array[12]; // объявление массива array[0] – array[11]
Вариант 2
int array[]={2,5,4,9,12};
array[0]=2, array[1]=5, array[2]=4, array[3]=9, array[4]=12
Для определения размера массива array нужно воспользоваться операцией sizeof:
size=sizeof(array)/sizeof(array[0]);
Вариант 3
int main ( )
{const int n=12;
float arr[n];
…..
return 0;
}
Индекс массива
array[3], a[k+2], mas[i]
Пример ввода с клавиатуры и вывода на экран одномерного массива
// ввод и вывод массива
# include <iostream>
using namespace std;
int main ()
{ int a[5];
for (int i=0; i<5; ++i)
{ cout<<”a[“<<i<<”]=”;
cin>>a[i]; }
for (i=0; i<5; i++)
cout<<”a[“<<i<<”]=”<<a[i]<<” “;
return 0;
}

Пример ввода вещественного массива и вычисления среднего арифметического значения.
// среднее значение массива
# include <iostream>
using namespace std;
int main ( )
{ const int n=10;
double a[n], average;
for (int i=0; i<n; i++)
{ cout<<”a[“<<i<<”]=”;
cin>>a[i]; }
for (average=0, i=0; i<n; i++)
average+= a[i];
average/=n;
cout<<”/naverage=”<< average;
return 0;
}
Пример вычисления суммы положительных элементов, предшествующих первому отрицательному элементу.
# include <iostream>
using namespace std;
int main( )
{ const int n=10;
int a[n], sum=0;
for (int i=0; i<n; i++)
{ cout<<"a["<<i<<"]=";
cin>>a[i]; }
i=0;
while (a[i]>0 && i<n)
{sum+=a[i];
i++;}
cout<<"sum="<<sum<<endl;
return 0;
}
Пример заполнения массива случайными числами.
// заполнение массива случайными числами
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{int mas[10];
srand ((unsigned int) time (NULL));
for (int i=0; i<10; ++i)
{ mas[i]=rand()%100;
cout<<mas[i]<<" ";
}
}
Пример сортировки массива «методом пузырька».
Таблица 1. Пример сортировки методом пузырька

// сортировка массива по возрастанию
# include <iostream>
using namespace std;
int main()
{ int x[]={6,4,9,2,1,8,10,25,3};
int i, j, n, a;
n=sizeof(x)/sizeof(x[0]);
for (i=0; i<n-1; i++)
for (j=0; j<n-1-i; j++)
if (x[j]>x[j+1]) {a=x[j]; x[j]=x[j+1]; x[j+1]=a;}
for (i=0; i<n; i++) cout<<x[i]<<” “;
return 0;
}
Операция sizeof() определяет размер в байтах
Двумерные массивы
float d[3][2] – двумерный массив, содержащий 3 строки ( с номерами 0, 1, 2) и 2 столбца ( с номерами 0, 1);
//объявление массива и инициализация
float mas[3][3]={5.4, 23.22, 1.5, 6.1, -4.7, 8.3, 17.1 ,18.2 ,56.3};
float a[][3]={{5,9,4},{1,2,3}}; // объявление массива и инициализация
Обращение к элементу двумерного массива:
d[0][0], d[i][j+1]
Пример. Программа определяет среднее арифметическое элементов целочисленной матрицы размером 4х6 и количество положительных элементов в каждой строке.
//обработка двумерного массива
#include <iostream>
#include <iomanip.h>
using namespace std;
int main()
{
const int nrow=4, ncol=6;
int a[nrow][ncol], i,j;
cout<<"Input element of the array"<<endl;
for (i=0; i<nrow; i++)
for (j=0; j<ncol; j++)
cin>>a[i][j];
// вывод элементов
for (i=0; i<nrow; i++)
{ for (j=0; j<ncol; j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
float sum=0;
int n_pol_el;
for (i=0; i<nrow; i++)
{
n_pol_el=0;
for (j=0; j<ncol; j++)
{
sum=sum+a[i][j];
if (a[i][j]>0) n_pol_el++;
}
cout<<"String"<<i<<" Number: "<<n_pol_el<<endl;
}
sum/=nrow*ncol;
cout<<"Arithmetic mean: "<<sum<<endl;
return 0;
}

Задача. В целочисленной матрице определить номер строки, содержащей наибольшее количество элементов, равных нулю.
//обработка двумерного массива
#include <iostream>
#include <iomanip.h>
using namespace std;
int main()
{ const int nrow=4, ncol=5;
int a[nrow][ncol], i, j;
cout<<"Input element of the array"<<endl;
for (i=0; i<nrow; ++i)
for (j=0; j<ncol; ++j)
cin>>a[i][j];
int istr=-1, Maxkol=0, kol;
for (i=0; i<nrow; ++i)
{ kol=0
for (j=0; j<ncol; ++j)
if (a[i][j]==0) ++kol;
if (kol>Maxkol) {istr=i; Maxkol=kol;}
}
// вывод элементов
for (i=0; i<nrow; i++)
{ for (j=0; j<ncol; j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
if (istr==-1) cout<<”null rows is not”<<endl; else cout<<”istr=”<<istr<<endl;
return 0;
}
