Опубликован: 10.12.2015 | Уровень: для всех | Доступ: платный
Лекция 8:

Многомерные массивы

< Лекция 7 || Лекция 8 || Лекция 9 >

Массивы, имеющие размерность более единицы, называются многомерными. Для доступа к их элементам в зависимости от их размерности используют разное количество пар квадратных скобок []. Например, массив double c[6][7] является двумерным массивом вещественных чисел, содержащим 6 строк и 7 столбцов, иными словами, матрица 6?7. Инициализировать массивы можно по-разному. В первом случае, элементы каждой строки заключают в скобки, отделяемые друг от друга запятой, во втором случае пишут все числа подряд, а программа сама решает какому столбцу в какой строке принадлежит конкретный элемент. Понятно, что первый способ предпочтительнее, так как он избавляет нас от путаницы в тех случаях, когда мы вводим неполный массив. Еще раз хотим напомнить, что первый элемент строки имеет нулевой индекс.

//==========================================================
// Name        : multidimensional_array.cpp
// Author      : Marat
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//==========================================================

#include <iostream>
using namespace std;

//Эти директивы препроцессора определяют
//максимальный размер массива
#define n 5  //Количество строк
#define m 3  //Количество столбцов

int main() {
	int i,j;
	double d[n][m]=  {//Таким образом мы явно указываем строки
			{1, 2, 3 },
			{4, 5, 6 },
			{7, 8, 9 },
			{10,11,12},
			{13,14,15}
		};
	cout<<"\nd array 5x3:";
	for(i=0;i<n;i++)
	{
		cout<<"\n";
		for(j=0;j<m;j++)
		{
			cout<<"\t"<<d[i][j];
		}
	}
	cout<<"\n"<<endl;
	cout<<"\na array 3x2: ";
	double a[3][2]= {1,2,3,4,5,6};
	//Программа сама определяет строки и столбцы
	for(i=0;i<3;i++)
	{
		cout<<"\n";
		for(j=0;j<2;j++)
		{
			cout<<"\t"<<a[i][j];
		}
	}
	cout<<"\n"<<endl;
	return 0;
}

Результат:

d array 5x3:
1   2   3
4   5   6
7   8   9
10  11  12
13  14  15

a array 3x2:
1 2
3 4
5 6
< Лекция 7 || Лекция 8 || Лекция 9 >
Зося Ковалева
Зося Ковалева

Хочу получить удостоверение. Сколько стоит оплата?

Aleksey Aplaev
Aleksey Aplaev
Россия, Chelybinsk
Александр Сидоров
Александр Сидоров
Россия, Самара