Главная » 2015 » Апрель » 14 » методичка 6. задача 50 седловая точка
11:14
методичка 6. задача 50 седловая точка

#include <iostream>
using namespace std;
void vvod (int **x, int n);
void sedlo (int **x, int n);
void vivod (int **x, int n);
int min (int **x, int n, int stroka);
int max (int **x, int n, int stolbec);
void init ();
void deinit();
int **a;
int n;
int main()
{
    setlocale(LC_ALL, "Russian");    
    init();
    
    vvod(a,n);
    cout << "Матрица A:" << endl;
    vivod(a,n);

    sedlo(a,n);

    system("pause");
    return 0;
}
void init ()
{
    cout << "Введите размер квадратной матрицы [n x n]: ";
    cin >> n;
    a=new int *[n];
    for (int i=0;i<n;i++)
        a[i]=new int [n];
}
void deinit ()
{
    for (int i=0;i<n;i++)
        delete []a[i];
    delete []a;
}
void vvod (int **x, int n)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<n;j++) 
            cin >> x[i][j];
}
void vivod (int **x, int n)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<n;j++)
        {
            cout.width(2); 
            cout << x[i][j] << " ";
        }
        cout << endl;
    }
}
void sedlo (int **x, int n)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<n;j++) 
        {
            if (min(x,n,i)==max(x,n,j))
                cout <<"Седловая точка: i="<<i<<" "<<" j="<<j<<endl;
        }
}
int min (int **x, int n, int stroka)
{
    int m=x[stroka][0];
    for (int j=0;j<n;j++) 
        if (x[stroka][j]<m)
            m=x[stroka][j];
    return m;
}
int max (int **x, int n, int stolbec)
{
    int m=x[0][stolbec];
    for (int i=0;i<n;i++)
        if (x[i][stolbec]>m)
            m=x[i][stolbec];
    return m;
}

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