Главная » 2020 » Март » 26 » Матрицы. Поменять местами максимальный и минимальный элементы
18:00
Матрицы. Поменять местами максимальный и минимальный элементы

//Поменять местами максимальный и минимальный элементы
#include <iostream>
#include <ctime>
using namespace std;
void vvod(int **a, int n, int m);
void vvod2(int **a, int n, int m);
void vivod(int **a, int n, int m);
int max (int **a, int n, int m);
int min (int **a, int n, int m);
void nomer(int **a, int n, int m, int elem, int &nomer_i, int &nomer_j);
void change_max_min(int **a, int n, int m);
int main()
{
    const int n=3,m=4;
    int **a=new int *[n];
    for (int i=0;i<n;i++) a[i]=new int[m];
    vvod2(a,n,m); vivod(a,n,m);
    cout<<"max="<<max(a,n,m)<<endl;
    cout<<"min="<<min(a,n,m)<<endl;
    int i,j;
    nomer(a,n,m,max(a,n,m),i,j);
    cout<<"i_max="<<i<<" j_max="<<j<<endl;
    nomer(a,n,m,min(a,n,m),i,j);
    cout<<"i_min="<<i<<" j_min="<<j<<endl;   
    change_max_min(a,n,m); vivod(a,n,m);
    nomer(a,n,m,max(a,n,m),i,j);
    cout<<"i_max="<<i<<" j_max="<<j<<endl;
    nomer(a,n,m,min(a,n,m),i,j);
    cout<<"i_min="<<i<<" j_min="<<j<<endl;    
    for (int i=0;i<n;i++) delete []a[i];
    delete a;
    system("pause");
}
void change_max_min(int **a, int n, int m)
{
    int imax,jmax,ma;
    ma=max(a,n,m);
    nomer(a,n,m,ma,imax,jmax);
    int imin,jmin,mi;
    mi=min(a,n,m);
    nomer(a,n,m,mi,imin,jmin);
    a[imax][jmax]=mi;
    a[imin][jmin]=ma;
}
void nomer(int **a, int n, int m, int elem, int &nomer_i, int &nomer_j)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if (a[i][j]==elem)
            {
                nomer_i=i; nomer_j=j; break;
            }
}
int min (int **a, int n, int m)
{
    int mi=a[0][0];
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if (a[i][j]<mi) mi=a[i][j];
    return mi;
}
int max (int **a, int n, int m)
{
    int ma=a[0][0];
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if (a[i][j]>ma) ma=a[i][j];
    return ma;
}
void vvod(int **a, int n, int m)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            cin>>a[i][j];
}
void vvod2(int **a, int n, int m)
{
    srand(time(0));
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            a[i][j]=rand()%90+10;
}
void vivod(int **a, int n, int m)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
}

Просмотров: 251 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar