Поиск седловой точки в матрице — C++(Си)

Элемент матрицы назовем седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Составить программу, вводящую с клавиатуры матрице размером 4 х 5 и выводящую на экран номера строки и столбца какой-нибудь седловой точки (если ни одна седловая точка не найдена, надо вывесте сообщение об ошибке).

Пример: введена матрица 1 5 2 1 8
6 8 6 3 1
8 9 7 8 9
7 1 1 0 9
то программа должна вывести на экран:
2 2
#include <iostream>
 
using namespace std;
int mas[4][5];
bool IsMin(int m,int v);
bool IsMax(int m,int v);
void main()
{
        cout<<"Введите матрицу\n";
        for(int i=0;i<4;i++)
                cin>>mas[i][0]>>mas[i][1]>>mas[i][2]>>mas[i][3]>>mas[i][4];
        int cCounter=0;
        for(int i=0;i<4;i++)
        {
                for(int j=0;j<5;j++)
                {
                        if(IsMin(i,j) && IsMax(i,j))
                        {
                                cCounter++;
                                cout<<i<<' '<<j<<endl;
                        }
                }
        }
        if(cCounter==0)
                cout<<"Error... Не могу найти седлову точку\n";
}
 
bool IsMin(int m,int v)
{
        int min=mas[m][v];
        for(int i=0;i<5;i++)
                if(min>mas[m][i])
                        return false;
        return true;
}
 
bool IsMax(int m,int v)
{
        int max=mas[m][v];
        for(int i=0;i<4;i++)
                if(max<mas[i][v])
                        return false;
        return true;
}

Leave a Comment