Поиск седловой точки в матрице
Категория: C/C++
2011-08-21 22:16:28
Элемент матрицы назовем седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Составить программу, вводящую с клавиатуры матрице размером 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
- #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;
- }
Поделиться: