Для начала научимся создавать статический массив. Статический массив — это такой массив, который создается до начала выполнения программы.
Общий вид:
тип_данных имя_переменной[размер_массива];
Реализация выглядит так:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
int a[100];
string b[10];
char c[55];
double d[25];
bool e[3];
return 0;
}
|
После создания статического массива становится актуальным вопрос об его инициализации-заполнении его какими-либо данными. Приведем некоторые примеры инициализации массива.
I.Инициализация массива нулями
Изначально в массиве хранятся одному компьютеру (Богу) известные значения. Поэтому прежде чем работать с массивом, его обычно зануляют, т.е. присваивают всем элементам массива значения «0».
1 вариант зануления:
1
2
3
4
5
|
int a[100];
for (int i=0; i<100; i++)
{
a[i]=0;
}
|
2 вариант зануления:
II. Инициализация массива заданными значениями (считывание данных в массив)
1
2
3
4
5
|
int a[100];
for (int i=0; i<100; i++)
{
cin >> a[i]; // считываем элемент массива
}
|
III. Работа с массивами.
1
2
3
4
5
6
|
int a[100];
for (int i=0; i<100; i++)
{
a[i]=2*i+1;
}
a[25]=7;
|
IV. Вывод массива на экран
1
2
3
4
5
6
|
int a[100];
for (int i=0; i<100; i++)
{
a[i]=2*i+1;
cout << a[i] << endl;
}
|
Мы закончили с одномерными массивами,теперь перейдем к двумерным массивам.
Двумерные масссивы можно представиьт себе как шкаф с книгами, где сначала нужно указать номер полки,а потом номер книги на данной полке. Таким образом для обращения к элеменам массива мы должны использовать два индекса, вместо одного. Приведём пример считывания и вывода двумерного массива на экран.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
int n,m;
cin >> n >> m;
int a[200][200]; //создаем массив размером 200x200
for (int i=0; i<200; i++) //просматриваем полку за полкой
for (int j=0; j<200; j++) // на нужной полке просматриваем книги
{
cin >> a[i][j];
}
for (int i=0; i<200; i++)
for (int j=0; j<200; j++)
{
cout << a[i][j]; //выводим результаты с просмотренных полок
}
|
|