Advertisement
Harakter

Монотонная последовательность в столбцах

Nov 17th, 2016
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. /*
  2.         Вывести номера столбцов, элементы каждого из которых образуют монотонную последовательность.
  3. */
  4.  
  5. #include <conio.h>
  6. #include <iostream>
  7. #include <ctime>
  8. #include <clocale>
  9. using namespace std;
  10.  
  11. void z1(int);
  12.  
  13. void random(int**);
  14. void keyboard(int**);
  15. void init(int**);
  16. const int n = 5;
  17. int main (){
  18.     setlocale(0, "rus");  
  19.     while(true){
  20.         cout << "1. Заполнить массив случайными числами.\n";
  21.         cout << "2. Заполнить массив вводом с клавиатуры\n";
  22.         cout << "3. Заполнить массив при инициализации\n";
  23.         int a;
  24.         cout << ">>";
  25.         cin >> a;
  26.         switch(a){
  27.         case 1: z1(1); break;
  28.         case 2: z1(2); break;
  29.         case 3: z1(3); break;
  30.         default: cout << "Введен неверный номер!\n";
  31.         }
  32.     }
  33.     _getch();
  34.     return 0;
  35. }
  36.  
  37. void random(int **mas){
  38.     srand(unsigned int(time(NULL)));
  39.     for (int i = 0; i < n; i++){
  40.         for (int j = 0; j < n; j++){
  41.             mas[i][j] = (rand() % 256 + 1);
  42.         }
  43.     }
  44. }
  45.  
  46. void keyboard(int **mas){
  47.     for (int i = 0; i < n; i++){
  48.         for (int j = 0; j < n; j++){
  49.             cout << "["<< i <<"]" << "[" << j << "]  = ";
  50.             cin >> mas[i][j];
  51.             cout << endl;
  52.         }
  53.     }
  54. }
  55.  
  56. void init(int **mas){
  57.     int masi[n][n] = { {125, 343, 142, 154, 1},
  58.                     {222, 78, 57, 12, 65},
  59.                     {342, 426, 75, 23, 654},
  60.                     {454, 23, 12, 64, 888},
  61.                     {2337, 354, 357, 23,999}};
  62.     for (int i = 0; i < n; i++){
  63.         for (int j = 0; j < n; j++){
  64.             mas[i][j] = masi[i][j];
  65.         }
  66.     }
  67. }
  68.  
  69. void z1(int ch){
  70.     int arr[n][n];
  71.     int *par[n];
  72.     int flag_up, flag_down;
  73.     if(ch == 1){
  74.         for (int  i = 0;  i < n;  i++){
  75.             par[i] = arr[i];
  76.         }
  77.         random(par);
  78.     }
  79.     else if(ch == 2){
  80.         for (int  i = 0;  i < n;  i++){
  81.             par[i] = arr[i];
  82.         }  
  83.         keyboard(par);
  84.     }
  85.     else{
  86.         for (int  i = 0;  i < n;  i++){
  87.             par[i] = arr[i];
  88.         }  
  89.         init(par);
  90.     }
  91.     cout << "\nИсходная матрица: \n";
  92.     for (int i = 0; i < n; i++){
  93.         for (int j = 0; j < n; j++){
  94.             cout << arr[i][j] << ", ";
  95.         }
  96.         cout << endl;
  97.     }
  98.     cout << endl;
  99.     for (int i = 0; i < n; i++){   
  100.         flag_down = 1;
  101.         flag_up = 1;
  102.         for (int j = n-1; j > 0; j--){
  103.             if(abs(arr[j][i]) > abs(arr[j-1][i])){
  104.                 flag_up++;
  105.             }
  106.             else if(abs(arr[j][i]) < abs(arr[j-1][i])){
  107.                 flag_down++;
  108.             }
  109.         }
  110.         if(flag_up == n || flag_down == n){
  111.             cout << "Номер столбца: " <<i+1 << endl;
  112.         }
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement