Одновимірний масив – це лінійна послідовність однотипних елементів. Такі масиви часто називають математичним терміном вектор. Кожен елемент масиву має свій порядковий номер (індекс), який визначає розташування цього елемента в масиві.
Як і звичайні змінні, масиви перед використанням необхідно явно оголошувати. Це виконується за допомогою такої синтаксичної конструкції:
тип_елементів ім’я_масиву [ кількість_елементів ];
тут тип елементів – довільний допустимий простий або складений тип, ім’я масиву – ідентифікатор, що відповідає правилам запису імен, квадратні дужки – обов’язкова ознака масиву, кількість елементів – константа чи константний вираз, що визначає розмірність даного масиву. Для кожного масиву компілятор виділяє неперервну ділянку пам'яті, обсяг якої дорівнює добутку
кількість_елементів × sizeof( тип_елементів )
При оголошенні масивів можна відразу виконувати ініціалізацію їх елементів. Застосовують дві форми ініціалізації: з зазначенням кількості елементів масиву і без зазначення кількості елементів масиву.
У першому випадку масив оголошується звичайним чином, після чого в фігурних дужках записують константні значення елементів масиву, починаючи від першого (тобто елемента з індексом нуль). При цьому кількість заданих значень не повинна перевищувати вказану розмірність масиву, але може бути меншою за неї – тоді для перших елементів масиву, для яких вказані значення, присвоюються ці значення, решті присвоюється нуль. Цю властивість мови програмування С++ зручно використовувати для присвоєння нульових значень елементам масиву.
int a[5] = { 1, 2, 3, 4, 5 }; // 1 2 3 4 5
int b[5] = { 1, 2, 3 }; // 1 2 3 0 0
int c[5] = { }; // 0 0 0 0 0
Якщо в оголошенні масиву виконується його повна ініціалізація, тобто вказані початкові значення для всіх елементів масиву, то кількість елементів масиву можна не опустити. Розмірність масиву визначається кількістю елементів – ініціалізаторів. Розмірність масиву, оголошеного без зазначення кількості елементів, можна визначити за допомогою операції sizeof:
кількість_елементів = sizeof(ім’я_масиву) / sizeof(тип_елементів)
Операція sizeof(ім’я_масиву) повертає розмір (обсяг в байтах) усієї ділянки пам'яті, яку займає масив, незалежно від того, наскільки він заповнений. Визначимо кількість елементів в масиві, оголошеному без зазначення його розмірності:
int a[] = { 1, 2, 3, 4, 5 };
int n = sizeof( a ) / sizeof( int );
for (int i = 0; i < n; ++i)
cout << a[i] << endl;
Елемент масиву є змінною, яка має тип, заданий в оголошенні масиву, і синтаксично може використовуватися у будь якому місці програми, де може бути записане дане такого типу. Звертання до елементу масиву виконується по його номеру (індексу) таким чином:
ім’я_масиву [ індекс_елемента ]
де індекс елемента може бути довільним виразом, який має значення цілого типу і задає порядковий номер елемента в масиві (нумерація починається з нуля). Компілятор не контролює відповідність значень індексів до розміру масиву. Некоректні звертання до елементів масиву можуть призвести до аварійного завершення роботи програми або краху системи.
Заповнити масив з 100 елементів цілими випадковими числами в діапазоні від 0 до 1000. Знайти найбільший елемент масиву і середнє значення елементів масиву.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand(unsigned(time(NULL)));
const int NUM = 100; // кількість елементів масиву
const int MIN = 0; // мінімальне значення елементів масиву
const int MAX = 1000;// максимальне значення елементів масиву
int a[NUM], i, m;
double avg;
for ( i = 0; i < NUM; ++i )
a[i] = MIN + rand( ) % MAX;
for ( i = 0, m = 0, avg = 0; i < NUM; ++i ) {
avg += a[i];
if ( a[i] > m )
m = a[i];
}
avg /= NUM;
cout << "avg = " << avg << endl;
cout << "max = " << m << endl;
}
Заповнити масив з 10 елементів цілими випадковими числами від -10 до 10. Вивести на екран спочатку додатні елементи масиву, потім – від’ємні. Замінити від’ємні елементи масиву на їх модулі.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand(unsigned(time(NULL)));
const int NUM = 10;
const int MIN = -10;
const int MAX = 10;
int a[NUM], i;
for ( i = 0; i < NUM; ++i )
a[i] = MIN + rand( ) % ( MAX - MIN );
for ( i = 0; i < NUM; ++i )
if ( a[i] >= 0 )
cout << a[i] << " ";
for ( i = 0; i < NUM; ++i )
if ( a[i] < 0 ) {
cout << a[i] << " ";
a[i] = -a[i];
}
cout << endl;
for ( i = 0; i < NUM; ++i )
cout << a[i] << " ";
}
Знайти кількість елементів масиву (у відсотках), більших середнього арифметичного. Масив заповнимо дійсними випадковими числами від 0 до 1.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand( unsigned( time ( NULL ) ) );
const int NUM = 1000;
double a[ NUM ], avg;
int i, n;
for ( i = 0, avg = 0; i < NUM; ++i ) {
a[ i ] = ( rand( ) % 1000 ) / 1000.;
avg += a[ i ];
}
avg /= NUM;
cout << avg << endl;
for (i = 0, n = 0; i < NUM; ++i)
if ( a[ i ] > avg )
n++;
cout << ( double ) n / NUM * 100 << endl;
}
Поміняти місцями максимальний і мінімальний елементи масиву.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand( unsigned( time( NULL ) ) );
const int N = 10;
int a[ N ], min, max, i, t;
for ( i = 0, min = 0, max = 0; i < N; ++i ) {
a[ i ] = rand( ) % 10;
if ( a[ i ] > max ) max = i;
if ( a[ i ] < min ) min = i;
cout << a[i] << " ";
}
cout << endl;
t = a[ min ];
a[ min ] = a[ max ];
a[ max ] = t;
for ( i = 0; i < N; ++i )
cout << a[i] << " ";
cout << endl;
}
Є послідовність цілих випадкових чисел в діапазоні від 0 до 9. Знайти кількість кожного з чисел, тобто кількість нулів, одиниць, двійок і так далі, в цьому масиві.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand( unsigned( time( NULL ) ) );
const int N = 1000; // кількість чисел
int a[ 10 ] = { }, i;
for ( i = 0; i < N; ++i )
a[ rand( ) % 10 ] ++;
for ( i = 0; i < 10; ++i )
cout << i << " " << a[i] << endl;
}
В математиці, многочленом чи поліномом однієї змінної називається вираз вигляду

де сі є сталими коефіцієнтами (константами), а х – змінна.
Сума многочленів є многочленом. Степінь суми многочленів дорівнює максимуму степенів доданків:

Знайти значення полінома для довільного х і суму двох поліномів.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand( unsigned( time( NULL ) ) );
const int NMAX = 100;
double p1[ NMAX ] = { 1, 2, 3 };
double p2[ NMAX ] = { 2, 3, 4, 5, 6 };
double p3[ NMAX ] = { };
int np1 = 3;
int np2 = 5;
int np3, i;
double x, s;
x = 1.1;
for ( i = 0, s = 0; i < np1; i++ )
s += p1[ i ] * pow( x, (double) i );
cout << s << endl;
for ( i = 0, s = 0; i < np2; i++ )
s += p2[ i ] * pow( x, (double) i );
cout << s << endl;
np3 = np1 > np2 ? np1 : np2;
for ( i = 0; i < np3; i++ ) {
p3[ i ] = p1[ i ] + p2[ i ];
cout << p3[ i ] << " ";
}
for ( i = 0, s = 0; i < np3; i++ )
s += p3[ i ] * pow( x, (double) i );
cout << endl << s << endl;
}
Вивести на екран таку послідовність чисел:
1 2
1 2 3
1 2 3 4
#include <iostream>
using namespace std;
int main() {
int i, j, n;
cin >> n; // кількість рядків
for ( i = 1; i <= n; i++ ) {
for ( j = 1; j <= i; j++ )
cout << j << " ";
cout << endl;
}
}