wintest

МАТРИЦА: Bubble sort спрямо четност на реда

Jan 14th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <ctime>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. #define M 5
  9. #define N 5
  10.  
  11. void sortThemAll(int array[][N], size_t rows);
  12. void fillTheArray(int array[][N], size_t rows);
  13. void printTheArray(int array[][N], size_t rows);
  14.  
  15. int main(){
  16.     setlocale(LC_ALL, "Bulgarian");
  17.     srand(time(NULL));
  18.  
  19.     int array[M][N];
  20.     fillTheArray(array, M);
  21.     printTheArray(array, M);
  22.     cout << endl;
  23.     sortThemAll(array, M);
  24.     printTheArray(array, M);
  25.  
  26.     return 0;
  27. }
  28. //И) подредба на елементите на матрицата във възходящ ред,
  29. //ако се намират на четен ред от матрицата и в низходящ ако се намират на нечетен ред от матрицата;
  30.  
  31. //  5 4 2 7 8  
  32. void sortThemAll(int array[][N], size_t rows)
  33. {
  34.     for (int row = 0; row < rows; row++)
  35.     {
  36.         if (row % 2 == 0){
  37.             for (int i = 0; i < N; i++)
  38.             {
  39.                 for (int j = i; j < N; j++)
  40.                 {
  41.                     if (array[row][i] < array[row][j])
  42.                     {
  43.                         int temp = array[row][i];
  44.                         array[row][i] = array[row][j];
  45.                         array[row][j] = temp;
  46.                     }
  47.                 }
  48.             }
  49.         }
  50.         else{
  51.             for (int i = 0; i < N; i++)
  52.             {
  53.                 for (int j = i; j < N; j++)
  54.                 {
  55.                     if (array[row][i] > array[row][j])
  56.                     {
  57.                         int temp = array[row][i];
  58.                         array[row][i] = array[row][j];
  59.                         array[row][j] = temp;
  60.                     }
  61.                 }
  62.             }
  63.         }
  64.        
  65.     }
  66. }
  67.  
  68. void fillTheArray(int array[][N], size_t rows){
  69.     for (size_t i = 0; i < M; i++)
  70.     {
  71.         for (size_t j = 0; j < N; j++){
  72.             array[i][j] = rand() % 5;
  73.  
  74.         }
  75.     }
  76. }
  77. //принтирам масив
  78. void printTheArray(int array[][N], size_t rows){
  79.     cout << "Оригиналната матрица е това : " << endl;
  80.  
  81.     for (size_t i = 0; i < M; i++)
  82.     {
  83.         for (size_t j = 0; j < N; j++){
  84.             cout << array[i][j] << "\t";
  85.         }
  86.         cout << endl;
  87.     }
  88. }
Add Comment
Please, Sign In to add comment