Главная » 2018 » Март » 20 » Матрица - Поменять местами столбцы с макс и мин
09:02
Матрица - Поменять местами столбцы с макс и мин

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int **x, int n, int m);
void vivod(int **x, int n, int m);
void ObmenStolbcMaxMin(int **x, int n, int m);

int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(0));    
    const int n=9, m=5;
    int **a;
    a=new int *[n];
    for (int i=0;i<n;i++) a[i]=new int [m];
    //cout<<"Введите матрицу А"<<endl; 
    vvod(a,n,m);
    cout<<"Введённая матрица А"<<endl;
    vivod(a,n,m);
    ObmenStolbcMaxMin(a,n,m);
    cout<<"Изменённая матрица А"<<endl;
    vivod(a,n,m);

    for (int i=0;i<n;i++) delete []a[i];
    delete []a;
    system("pause");
    return 0;
}
void vvod(int **x, int n, int m)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++) 
            x[i][j]=rand()%90+10;
}
void vivod(int **x, int n, int m)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++) 
            cout<<x[i][j]<<" ";
        cout<<endl;
    }
}
void ObmenStolbcMaxMin(int **x, int n, int m)
{
    int max=x[0][0],imax=0,jmax=0;
    int min=x[0][0],imin=0,jmin=0;
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
        {
            if (x[i][j]>max)
            {
                max=x[i][j]; imax=i; jmax=j;
            }
            if (x[i][j]<min)
            {
                min=x[i][j]; imin=i; jmin=j;
            }
        }
    cout<<"max="<<max<<" ["<<imax<<";"<<jmax<<"]"<<"   ";
    cout<<"min="<<min<<" ["<<imin<<";"<<jmin<<"]"<<endl;
    //перестановка столбца jmax и jmin
    int c;
    for (int i=0;i<n;i++)
    {
        c=x[i][jmax];
        x[i][jmax]=x[i][jmin];
        x[i][jmin]=c;
    }
}

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