Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- //#include "stdafx.h"
- using namespace std;
- //int _tmain(int argc, _TCHAR* argv[])
- int main()
- {
- setlocale(LC_CTYPE, "rus");
- unsigned const int n = 4;
- unsigned const int m = 6;
- int null_counter = 0;
- int temp_length = 1, max_length = 1, temp_max = 1, k = 0, index_arr[n];
- // Задание матрицы явно:
- int matrix[n][m] = {
- {1, 0, 3, 4, -7, 7},
- {2, 3, 0, 1, 1, 1},
- {3, 1, 9, 9, 9, -3},
- {0, 5, 5, 5, 4, 9}
- };
- // Задание матрицы через консоль:
- /*
- int matrix[n][m];
- for (int i = 0; i < n; i++) {
- cout << "Введите 6 элементов " << i + 1 << "-й строки:\n";
- for (int j = 0; j < m; j++) {
- cout << j + 1 << "-й элемент: ";
- cin >> matrix[i][j];
- }
- }
- */
- // Вывод матрицы в консоль:
- cout << "Ваша матрица:\n";
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- //(1)Количество столбцов, содержащих хотя бы один нулевой элемент:
- for (int j = 0; j < m; j++) {
- for (int i = 0; i < n; i++) {
- if (matrix[i][j] == 0) {
- null_counter++;
- break;
- }
- }
- }
- cout << "Количество столбцов, содержащих хотя бы один нулевой элемент = " << null_counter << endl;
- //(2)Номера строк, в которой находится самая длинная серия одинаковых элементов:
- /* 1-й метод решения, когда максимумы переопределяются на лету и индексы строк, где находятся эти максимумы,
- добавляются в массив индексов. После этого выводятся нужные элементы массива с индексами. */
- for (int i = 0; i < n; i++) {
- for (int j = 1; j < m; j++) {
- if (matrix[i][j] == matrix[i][j - 1]) {
- temp_length++;
- }
- else temp_length = 1;
- if (temp_length > temp_max) {
- temp_max = temp_length;
- }
- }
- if (temp_max == max_length) {
- index_arr[k] = i;
- k++;
- }
- else if (temp_max > max_length) {
- max_length = temp_max;
- temp_max = 1;
- k = 0;
- index_arr[k] = i;
- k++;
- }
- }
- cout << "Номера строк с самой длинной серией повторяющихся элементов: " << endl;
- for (int i = 0; i < k; i++) {
- cout << "№ " << index_arr[i] + 1 << endl;
- }
- cout << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment