MrGhost75

LAB4_VAR3

Nov 21st, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <iostream>
  2. //#include "stdafx.h"
  3.  
  4. using namespace std;
  5.  
  6. //int _tmain(int argc, _TCHAR* argv[])
  7. int main()
  8. {
  9.     setlocale(LC_CTYPE, "rus");
  10.     unsigned const int n = 4;
  11.     unsigned const int m = 6;
  12.     int null_counter = 0;
  13.     int temp_length = 1, max_length = 1, temp_max = 1, k = 0, index_arr[n];
  14.  
  15.     // Задание матрицы явно:
  16.     int matrix[n][m] = {
  17.         {1, 0, 3, 4, -7, 7},
  18.         {2, 3, 0, 1, 1, 1},
  19.         {3, 1, 9, 9, 9, -3},
  20.         {0, 5, 5, 5, 4, 9}
  21.     };
  22.  
  23.  
  24.     // Задание матрицы через консоль:
  25.     /*
  26.     int matrix[n][m];
  27.     for (int i = 0; i < n; i++) {
  28.         cout << "Введите 6 элементов " << i + 1 << "-й строки:\n";
  29.         for (int j = 0; j < m; j++) {
  30.             cout << j + 1 << "-й элемент: ";
  31.             cin >> matrix[i][j];
  32.         }
  33.     }
  34.     */
  35.  
  36.     // Вывод матрицы в консоль:
  37.     cout << "Ваша матрица:\n";
  38.     for (int i = 0; i < n; i++) {
  39.         for (int j = 0; j < m; j++) {
  40.             cout << matrix[i][j] << " ";
  41.         }
  42.         cout << endl;
  43.     }
  44.  
  45.     //(1)Количество столбцов, содержащих хотя бы один нулевой элемент:
  46.     for (int j = 0; j < m; j++) {
  47.         for (int i = 0; i < n; i++) {
  48.             if (matrix[i][j] == 0) {
  49.                 null_counter++;
  50.                 break;
  51.             }
  52.         }
  53.     }
  54.     cout << "Количество столбцов, содержащих хотя бы один нулевой элемент = " << null_counter << endl;
  55.  
  56.     //(2)Номера строк, в которой находится самая длинная серия одинаковых элементов:
  57.     /* 1-й метод решения, когда максимумы переопределяются на лету и индексы строк, где находятся эти максимумы,
  58.     добавляются в массив индексов. После этого выводятся нужные элементы массива с индексами. */
  59.     for (int i = 0; i < n; i++) {
  60.         for (int j = 1; j < m; j++) {
  61.             if (matrix[i][j] == matrix[i][j - 1]) {
  62.                 temp_length++;
  63.             }
  64.             else temp_length = 1;
  65.             if (temp_length > temp_max) {
  66.                 temp_max = temp_length;
  67.             }
  68.         }
  69.         if (temp_max == max_length) {
  70.             index_arr[k] = i;
  71.             k++;
  72.         }
  73.         else if (temp_max > max_length) {
  74.             max_length = temp_max;
  75.             temp_max = 1;
  76.             k = 0;
  77.             index_arr[k] = i;
  78.             k++;
  79.         }
  80.     }
  81.     cout << "Номера строк с самой длинной серией повторяющихся элементов: " << endl;
  82.     for (int i = 0; i < k; i++) {
  83.         cout << "№ " << index_arr[i] + 1 << endl;
  84.     }
  85.  
  86.     cout << endl;
  87.     system("pause");
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment