Можно создать многомерные массивы. Массив может иметь любое число размерностей, но в большинстве случаев достаточно иметь одну или две.
Примером двумерного массива может служить шахматная доска. Одна размерность предоставляет собой восемь рядов по горизонтали; другая – восемь по вертикали.
Предположим мы объявили двумерный массив:
int Array[5][3];
Инициализировать такой массив можно следующим образом:
int Array[5][3] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
чтобы было понятней, значения при инициализации можно разделитьт фигурными скобками. Например:
int Array[5][3] = { {1,2,3},
{4,5,6},
{7,8,9},
{10,11,12},
{13,14,15} };
Компилятор проигнорирует внутренние фигурные скобки, но они сделают набор чисел нагляднее и понятнее.
Вне зависимости от фигурных скобок, кождое значение следует отделять запятой.
Рассмотрим пример создания двумерного массива.
В стоке 11 обьявлен массив размерностью n на n, где n, в нашем случае равняется трем. В строке 12 пользователю предлогается заполнить этот массив значениями, а именно ввести 9 значений. В строках 16-21 каждый четный элемент массива заменяется 0, а нечетный - 1.
Далее преобразованная матрица выводится на экран.
При обьявлении массива компилятору точно указывают, сколько объектов планируется в нем сохранить. Компилятор зарезервирует память для всенх объктов массива, даже если они не будут использованы. Если известно заранее, сколько элементов должен хранить массив, то никаких проблем не возникает. Но если количество элементов массив неизвестно, придется применять иные средства организации данных.
Найти матрицу С равную сумме двух матриц А и В и матрицу D равную разности матриц А и В. Матрицы одинаковой размерности.
#include "stdafx.h"
#include "iostream"
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
setlocale(LC_ALL, "Russian");
int i, j;
const int n = 3, m = 4;
double a[n][m], b[n][m], c[n][m], d[n][m];
cout << "Введите матрицу А (" << n << "x" << m << "): \n";
for(i = 0; i < n; i++)
for (j = 0; j < m; j++)
cin >> a[i][j];
cout << "\nВведите матрицу B (" << n << "x" << m << "): \n";
for(i = 0; i < n; i++)
for (j = 0; j < m; j++)
cin >> b[i][j];
for(i = 0; i < n; i++)
for (j = 0; j < m; j++)
c[i][j]= a[i][j] + b[i][j];
for(i = 0; i < n; i++)
for (j = 0; j < m; j++)
d[i][j]= a[i][j] - b[i][j];
cout << "\nМатрица C: ";
for(i = 0; i < n; i++)
{
cout << "\n";
for (j = 0; j < m; j++)
cout << c[i][j] << "\t";
}
cout << "\nМатрица D: ";
for(i = 0; i < n; i++)
{
cout << "\n";
for (j = 0; j < m; j++)
cout << d[i][j] << "\t";
}
cout << "\n";
system("pause");
return 0;
}
В целочисленной матрице найти номер строки, содержащей минимальное количество нулевых элементов.