Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Написать программу, выполняющую в матрице размерностью n*m поиск седловых точек (седловой точкой называется элемент, являющийся минимальным в строке и максимальным в столбце). Значения m и n программа должна запрашивать в диалоговом режиме, память под матрицу следует распределять динамически. Напишите функции:
- 1. -заполнения двумерного массива случайными числами из диапазона –100, +100;
- 2. -вывода двумерного массива;
- 3. -поиска седловых точек;*/
- #include <iostream>
- #include <time.h>
- #include <cstdlib>
- #include <Windows.h>
- #include <array.h>
- using namespace std;
- void sedlo(int **array, int n, int m, int Min, int Max, int StrMin, int StlMax, bool *logic)
- {
- unsigned int i, j, k;
- for (i = 0; i < n; i++)
- {
- Min = array[i][0];
- StrMin = 0;
- for (j = 0; j < m; j++)
- {
- if (array[i][j] < Min)
- {
- Min = array[i][j];
- StrMin = j;
- }
- }
- Max = array[0][StrMin];
- StlMax = 0;
- for (k = 0; k < m; k++)
- {
- if (array[k][StrMin] > Max)
- {
- Max = array[k][StrMin];
- StlMax = k;
- }
- }
- if (i == StlMax)
- {
- *logic = true;
- cout << "Array[" << StrMin+1 << "][" << StlMax+1 << "] - седловая точка" << endl;
- }
- }
- }
- int main()
- {
- setlocale(0, "");
- srand((unsigned)time(NULL));
- int k, n, m, rand_min, rand_max, Min = 0, Max = 0, StrMin = 0, StlMax = 0;
- bool logic = false;
- cout << "Количество строк: ";
- cin >> n;
- cout << "Количество столбцов: ";
- cin >> m;
- cout << "Диапазон генерируемых чисел" << endl;
- cout << "От: ";
- cin >> rand_min;
- cout << "До: ";
- cin >> rand_max;
- int** array = CreateArray(n, m);
- fRandomizeArray(array, n, m, rand_min, rand_max);
- system("CLS");
- fPrintArray(array, n, m);
- sedlo(array, n, m, Min, Max, StrMin, StlMax, &logic);
- if (logic == false)
- cout << "Седловых точек нет" << endl;
- DeleteArray(array, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement