Двумерные массивы

Двумерный массив - набор элементов одного и того же типа, имеющих одно общее имя и два индекса для указания отдельного элемента. Первый индекс – номер строки, второй – номер столбца.

Синтаксис объявления массива: тип_ массива имя_массива [ число строк ] [число столбцов ]

int  mas[5][4], a[3][4];

Общее число элементов массива равно  число строк * число столбцов 

  0 столбец 1 столбец 2 столбец 3 столбец
0 строка a[0][0] a[0][1] a[0][2] a[0][3]
1 строка a[1][0] a[1][1] a[1][2] a[1][3]
2 строка a[2][0] a[2][1] a[2][2] a[2][3]

В памяти двумерный (или многомерный массив) храниться как одномерный, строки массива расположены последовательно одна за другой.

Ввод элементов массива

По аналогии с одномерным массивом (с клавиатуры, через генератор случайных чисел, с использованием формул).

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

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

cin>>a[i][j]

Вывод элементов массива

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

{for(j=0;j<4;j++)

cout<<a[i][j]<<’ \ t ’;

cout<<’ \ n ’;

}

Для работы с элементами двумерного массива используется два цикла – внешний и внутренний (структура вложенных циклов). Начальные значения определяются во внешнем цикле, а работа начинается с внутреннего цикла.

Пример с двумерным массивом (Решение задачи можно посмотреть, скачав файл "Задача-9"):

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

#include<iostream.h>
#include<conio.h>
#define n 4
#define m 3
main ()
{int mas[n][m],sum=0,k,i,j;
 cout<<"Vvedite massiv"<<'\n';
 for (i=0; i<n; i++)
  for (j=0; j<m; j++)
    cin>>mas[i][j];
 for (i=0; i<n; i++)
  { for (j=0; j<m; j++)
      cout<<mas[i][j]<<'\t';
     cout<<'\n';
   }
 cout<<"Vvedite chislo k: ";
 cin>>k;
 if ((k<0)||(k>n+m-2)) cout<<"k ne yavlyaetsya summoy indeksov massiva"<<'\n';
  else
  { for (i=0; i<n; i++)
     for (j=0; j<m; j++)
       if (i+j==k) sum=sum+mas[i][j];
     cout<<"Sum= "<<sum<<'\n';
   }
 getch();
 return 0;
}

Четверг, 09.05.2024, 02:51
Приветствую Вас Гость