Advertisement
Balda

Untitled

Jan 9th, 2014
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. /*Написать программу, выполняющую в матрице размерностью n*m поиск седловых точек (седловой точкой называется элемент, являющийся минимальным в строке и максимальным в столбце). Значения m и n программа должна запрашивать в диалоговом режиме, память под матрицу следует распределять динамически. Напишите функции:
  2. 1.  -заполнения двумерного массива случайными числами из диапазона –100, +100;
  3. 2.  -вывода двумерного массива;
  4. 3.  -поиска седловых точек;*/
  5.  
  6. #include <iostream>
  7. #include <time.h>
  8. #include <cstdlib>
  9. #include <Windows.h>
  10. #include <array.h>
  11. using namespace std;
  12.  
  13. void sedlo(int **array, int n, int m, int Min, int Max, int StrMin, int StlMax, bool *logic)
  14. {
  15.     unsigned int i, j, k;
  16.     for (i = 0; i < n; i++)
  17.     {
  18.         Min = array[i][0];
  19.         StrMin = 0;
  20.         for (j = 0; j < m; j++)
  21.         {
  22.             if (array[i][j] < Min)
  23.             {
  24.                 Min = array[i][j];
  25.                 StrMin = j;
  26.             }
  27.         }
  28.         Max = array[0][StrMin];
  29.         StlMax = 0;
  30.         for (k = 0; k < m; k++)
  31.         {
  32.             if (array[k][StrMin] > Max)
  33.             {
  34.                 Max = array[k][StrMin];
  35.                 StlMax = k;
  36.             }
  37.         }
  38.         if (i == StlMax)
  39.         {
  40.             *logic = true;
  41.             cout << "Array[" << StrMin+1 << "][" << StlMax+1 << "] - седловая точка" << endl;
  42.         }
  43.     }
  44. }
  45.  
  46. int main()
  47. {
  48.     setlocale(0, "");
  49.     srand((unsigned)time(NULL));
  50.     int k, n, m, rand_min, rand_max, Min = 0, Max = 0, StrMin = 0, StlMax = 0;
  51.     bool logic = false;
  52.     cout << "Количество строк: ";
  53.     cin >> n;
  54.     cout << "Количество столбцов: ";
  55.     cin >> m;
  56.     cout << "Диапазон генерируемых чисел" << endl;
  57.     cout << "От: ";
  58.         cin >> rand_min;
  59.     cout << "До: ";
  60.         cin >> rand_max;
  61.     int** array = CreateArray(n, m);
  62.     fRandomizeArray(array, n, m, rand_min, rand_max);
  63.     system("CLS");
  64.     fPrintArray(array, n, m);
  65.     sedlo(array, n, m, Min, Max, StrMin, StlMax, &logic);
  66.     if (logic == false)
  67.         cout << "Седловых точек нет" << endl;
  68.     DeleteArray(array, n);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement