JewishCat

Untitled

May 24th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | None | 0 0
  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. //если в строке будет например 1 2 3 3 4 5 5 6 то она считается отсортированной
  6. //1 1 1 тоже отсортирована
  7. bool IsSorted (int* arr, int m)
  8. {
  9.     bool flagGrowing = true, flagDecrease = true;
  10.     for(int i=0; i<m-1; i++){
  11.         if (arr[i+1] < arr[i])// проверили, что элементы неупорядочены или упорядочены по позрастанию
  12.             //если хоть один будет меньше предыдущего, значит не упорядочены и сразу прерываем цикл
  13.         {
  14.             flagGrowing = false;
  15.             break;
  16.         }
  17.     }
  18.     for(int i=0; i<m-1; i++){
  19.         if (arr[i+1] > arr[i])// проверили, что элементы неупорядочены или упорядочены по убыванию
  20.             //если хоть один будет больше предыдущего, значит не упорядочены и сразу прерываем цикл
  21.         {
  22.             flagDecrease = false;
  23.             break;
  24.         }
  25.     }
  26.     if (flagGrowing || flagDecrease)//если отсортирован либо по возр, либо по убыв, то возр тру
  27.         return true;
  28.     else
  29.         return false;
  30. }
  31.  
  32. vector<int> CheckMatrix(int** matrix, int m, int n)
  33. {
  34.     vector<int> vec;
  35.     for(int i=0; i<m; i++){
  36.         if(IsSorted(matrix[i], m)) // если отсортирована, то добавляем в вектор 1, иначе ноль
  37.             vec.push_back(1);
  38.         else
  39.             vec.push_back(0);
  40.     }
  41.     return vec;
  42. }
  43. //функция печати итогового вектора
  44. void PrintVector( vector<int>&a)
  45. {
  46.     for (vector<int>::iterator it = a.begin() ; it!=a.end() ; ++it)
  47.         cout<<*it << " ";
  48. }
  49.  
  50. int main(int argc, const char * argv[]) {
  51.    
  52.     int m = 3, n = 3;
  53.     int **matrix=new int* [m];//создали динамич массив с m строк
  54.     for(int i=0; i<m; i++)
  55.         matrix[i]=new int [n]; // выделили на каждую строку столбцы грубо говоря
  56.    
  57.     vector<int> vec;
  58.     //заполнили массив рандомными числами
  59.     for(int i=0; i<m; i++){
  60.         for(int j=0; j<n; j++){
  61.             matrix[i][j]=rand()%100+1;
  62.             cout << matrix[i][j] << " ";
  63.         }
  64.         cout << endl;
  65.     }
  66.     /*
  67.     matrix[0][0] = 1; matrix[0][1] = 1; matrix[0][2] = 1;
  68.    
  69.     matrix[1][0] = 1; matrix[1][1] = 2; matrix[1][2] = 3;
  70.    
  71.     matrix[2][0] = 1; matrix[2][1] = 2; matrix[2][2] = 1;*/
  72.    
  73.     vec = CheckMatrix(matrix, m, n);
  74.     cout << "Получившийся вектор: ";
  75.     PrintVector(vec);
  76.     puts("\n");
  77.     return 0;
  78. }
Add Comment
Please, Sign In to add comment