Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник + Лабораторные работы С++.pdf
Скачиваний:
105
Добавлен:
12.04.2015
Размер:
767.41 Кб
Скачать

delete [ ]указатель – освобождение выделенной памяти.

5.3. Создание двумерного динамического массива

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

double **umas2;

umas2 = new double*[n]; for(i=0; i<n; i++)

umas2[i] = new double[m];

for(i=0; i<n; i++) delete [ ]umas2[i];

delete [ ]umas2; umas2=NULL;

5.4. Пример выполнения работы

Условие 1. Найти минимальный и максимальный элементы матрицы и их координаты.

min=max=a[0][0];

imin=jmin=imax=jmax=0; for (i=0; i<n; i++)

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

{

if (a[i][j]<min) { min=a[i][j]; imin=i; jmin=j; } else

if (a[i][j]>max) { max=a[i][j]; imax=i; jmax=j; }

}

Условие 2. Упорядочить строки матрицы по неубыванию их максимальных элементов.

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

{

b[i]=a[i][0];

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

if (a[i][j]>b[i]) b[i]=a[i][j];

}

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