Поиск седловой точки в матрице

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

Пример: введена матрица 1 5 2 1 8
6 8 6 3 1
8 9 7 8 9
7 1 1 0 9
то программа должна вывести на экран:
2 2

code: #c
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int mas[4][5];
  5. bool IsMin(int m,int v);
  6. bool IsMax(int m,int v);
  7. void main()
  8. {
  9.         cout<<"Введите матрицу\n";
  10.         for(int i=0;i<4;i++)
  11.                 cin>>mas[i][0]>>mas[i][1]>>mas[i][2]>>mas[i][3]>>mas[i][4];
  12.         int cCounter=0;
  13.         for(int i=0;i<4;i++)
  14.         {
  15.                 for(int j=0;j<5;j++)
  16.                 {
  17.                         if(IsMin(i,j) && IsMax(i,j))
  18.                         {
  19.                                 cCounter++;
  20.                                 cout<<i<<' '<<j<<endl;
  21.                         }
  22.                 }
  23.         }
  24.         if(cCounter==0)
  25.                 cout<<"Error... Не могу найти седлову точку\n";
  26. }
  27.  
  28. bool IsMin(int m,int v)
  29. {
  30.         int min=mas[m][v];
  31.         for(int i=0;i<5;i++)
  32.                 if(min>mas[m][i])
  33.                         return false;
  34.         return true;
  35. }
  36.  
  37. bool IsMax(int m,int v)
  38. {
  39.         int max=mas[m][v];
  40.         for(int i=0;i<4;i++)
  41.                 if(max<mas[i][v])
  42.                         return false;
  43.         return true;
  44. }
Поделиться:

Похожие статьи: