Результат выполнения программы


 

 


Задание 4

Составить программу поиска минимального и максимального элементов одномерного массива и их индексов.

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

 

void MinMax (int a[],int,int*,int*,int*,int*); // Прототип функции

 

int main()

{

int a[10], i, n, min, imin, max, imax;

 

cout<<"Vvedite razmer massiva: "; // Ввод размерности массива

cin>>n;

cout<<"\nVvedite massiv:\n";

for (i=0; i<n; i++) // Ввод одномерного массива

{

cout<<"Vvedite a["<<i<<"]=";

cin>>a[i];

}

 

cout<<"\nMassiv a:\n"; // Вывод одномерного массива

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

cout<<setw(7)<<a[i];

cout<<endl;

 

MinMax (a, n, &min, &max, &imin, &imax); // Вызов функции

 

cout<<"\nMax="<<max<<setw(10)<<"i="<<imax;

cout<<"\nMin="<<min<<setw(10)<<"i="<<imin<<endl;

return 0;

}

// Функция поиска минимального и максимального элементов

// одномерного массива и их индексов

void MinMax (int a[],int n,int *min,int *max,int *imin,int *imax)

{

int i;

*min=*max=a[0]; // Инициализация значений

*imin=*imax=0;

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

{

if (a[i]<*min) { // Поиск минимального элемента и его индекса

*min=a[i];

*imin = i;

}

if (a[i]>*max) { // Поиск максимального элемента и его индекса

*max=a[i];

*imax = i;

}

}

}


Задание 5

Написать программу перестановки минимального и максимального элементов двумерного массива размером NxM. Память для массива выделить динамически. результат. Предусмотреть использование функции пользователя.

 

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

 

// Прототип функции поиска минимального и максимального элементов

// двумерного массива

void Poisk (double**, int, int, int*, int*, int*, int*);

 

int main()

{

double **a, tmp;

int i, j, n, m, imin, jmin, imax, jmax;

 

cout << "Vvedite razmer massiva A:\n";

cout << "row n=";

cin >> n ;

cout << "column m=";

cin >> m;

 

a = new double*[n]; // Выделение памяти под массив указателей

for(i=0; i<n; i++) // Выделение памяти под соответствующие

a[i] = new double[m]; // этим указателям строки матрицы

 

cout << "\nVvedite massiv A:\n"; // Ввод элементов двумерного массива

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

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

{

cout << "Vvedite a[" << i << "][" << j << "]: ";

cin >> a[i][j];

}

 

cout << "\nMassiv A:\n"; // Вывод элементов двумерного массива

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

{

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

cout << setw (9) << a[i][j];

cout << endl;

}

Poisk (a, n, m, &imin, &imax, &jmin, &jmax); // Вызов функции

 

tmp = a[imin][jmin]; // Перестановка элементов

a[imin][jmin] = a[imax][jmax];

a[imax][jmax] = tmp;

 

cout << "\nResult massiv:\n" ; // Вывод результата

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

{

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

cout << setw (9) << a[i][j];

cout << endl;

}

 

for(i=0; i<n; i++) // Освобождение выделенной памяти

delete [] a[i];

delete []a;

a = NULL;

 

return 0;

}