Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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



Читайте также:
  1. RAID-массивы и матрицы
  2. ДВУМЕРНЫЕ МАССИВЫ
  3. Двумерные массивы
  4. Двумерные массивы
  5. Двумерные массивы
  6. Двумерные массивы
  7. Двумерные массивы

http://iguania.ru/uchebnik-po-osnovam-programmirovaniya-dlya-nachinaiuschich/glava-15-dvumernie-massivi.html

В С++ можно использовать многомерные массивы. Элементом массива может быть в свою очередь тоже массив. Таким образом, мы приходим к понятию двумерного массива или матрицы, а также многомерных массивов.

Определение многомерного массива:

<тип> <имя массива> [<размер1>][<размер2>] … [<размерn>];

Например:

int MATRIC [2][3]; // матрица целых чисел размерностью 2х3

Для доступа к элементу многомерного массива используется конструкция

<имя массива> [<индекс1>][<индекс2>] … [<индексn>];

В памяти компьютера многомерный массив размещается так, что вначале меняется самый правый индекс.

Например:

int A [2][3];

A[0][0], A[0][1],A[0][2],

A[1][0], A[1][1],A[1][2]

Для наглядности двумерный массив можно представить в виде таблицы с числом строк, равным первому размеру массива, и числом столбцов, равным второму размеру массива, например:

Массив А Столбец 0 Столбец 1 Столбец 2
Строка 0 индексы [0][0] индексы [0][1] индексы [0][2]
Строка 1 индексы [1][0] индексы [1][1] индексы [1][2]

Как и одномерные, многомерные массивы можно инициализировать при объявлении.

int A[2][3]={{4,3,2},{1,-1,-2}};

double B[2][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

Может быть использована и более компактная запись:

int A[2][3]={4,3,2,1,-1,-2};

В этом случае многомерный массив инициализируется таким же образом, как если бы он был одномерным. Если необходимо обнулить содержимое многомерного массива можно поступить следующим образом:

int imassiv[2][3]= {0};


Задача: Дана целочисленная матрица размером N на M (максимум 5 на 10). Осуществить ввод матрицы. Все элементы с нечетным произведением номера строки и номера столбца увеличить в два раза. Полученную матрицу вывести на экран.

#include <iostream>

using namespace std;

int main()

{

int n,m,i,j;

int a[5][10];

cout<<"Input size of matrix (max 5X10):";

cin>>n>>m;

if((n<1)||(m<1)||(n>5)||(m>10)) {cout<<"Error"; return 1;}

for(i=0;i<n;i++)

for(j=0;j<m;j++)

cin>>a[i][j];

for(i=0;i<n;i++)

for(j=0;j<m;j++)

if((i*j)%2==1) a[i][j]*=2;

for(i=0;i<n;i++)

{

for(j=0;j<m;j++) cout<<a[i][j]<<" ";

cout<<endl;

}

return 0;

}


Задача: Дана квадратная целочисленная матрица размерностью максимум 10х10. Организовать заполнение матрицы случайными числами. В каждой строке матрицы найти максимальный элемент и поменять его местами с элементом главной диагонали в этой строке. Исходную и полученную матрицу вывести на экран.

#include <iostream>

#include <stdlib.h>

#include <time.h>

using namespace std;

int main()

{

int n,i,j,max,p;

int a[10][10];

//Вод данных

cout<<"Input size of matrix (max 10):";

cin>>n;

if ((n<1)||(n>10)) {cout<<"Error"; return 1;}

srand(time(NULL));

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

a[i][j]=rand()%10;

cout<<"A["<<i<<"]["<<j<<"]="<<a[i][j]<<" ";

if (j==n-1) cout<<endl;

}


Дата добавления: 2015-07-11; просмотров: 62 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.007 сек.)