Двумерные массивы
Двумерный массив - набор элементов одного и того же типа, имеющих одно общее имя и два индекса для указания отдельного элемента. Первый индекс – номер строки, второй – номер столбца.
Синтаксис объявления массива: тип_ массива имя_массива [ число строк ] [число столбцов ]
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;
}
|