0 / 0 / 0
Регистрация: 09.05.2015
Сообщений: 10
1

Найти номер строки, в которой находится самая длинная серия одинаковых элементов

04.05.2016, 14:15. Показов 9397. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.Дана целочисленная прямоугольная матрица. Определить:
1.количество столбцов, содержащих хотя бы один нулевой элемент;
2.номер строки, в которой находится самая длинная серия одинаковых элементов.
первое задание работает,второе тоже,но не правильно.При тестировании неверно показывает строку с длинной серией повторений.Помогите пожалуйста,уже вторые сутки пытаюсь сделать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
//const int N = 20;
//const int M = 20;
 
int main()
{
    setlocale(0, "Rus");
 
    int i, j, b, c;
    int k = 0;
    int n = 0;
 
 
    cout << "Введите размер массива" << endl;
    cout << "Количество строк = ";
    cin >> b;
    cout << "Количество столбцов = ";
    cin >> c;
    cout << "Введите элементы массива" << endl;
    int **a = new int*[b];
    for (i = 0; i < b; i++) {
        a[i] = new int[c];
    }
    for (i = 0; i < b; i++)
    {
        for (j = 0; j < c; j++)
        {
            cout << "a[" << j << "," << i << "]=";
            cin >> a[i][j];
        }
        cout << endl;
        for (i = 0; i < b; i++)
        {
            for (j = 0; j < c; j++)
            {
                cout << "a[" << j << "," << i << "]=";
                cin >> a[i][j];
            }
            cout << endl;
        }
        for (i = 0; i < b; i++)
        {
            for (j = 0; j < c; j++)
                cout << a[i][j] << " ";
            cout << endl;
        }
        cout << endl;
        for (j = 0; j < c; j++)
            for (i = 0; i < b; i++)
 
                if (a[i][j] == 0)
                {
                    k++;
                    j++;
                }
        cout << "Количество столбцов с нулевым элементом =" << k << endl;
        int l = 0;
        int m = 0;
        int max = 0;
        for (i = 0; i < b - 1; i++)
        {
            for (j = 0; j < c; j++)
 
            {
                if (a[i][j] == a[i][j + 1])
                    l = l + 1;
                if (max < l)
                {
                    max = l;
                    m = i + 1;
                    break;
                }
 
            }
        }
        cout << "Самая длинная серия одинаковых элементов в " << m << " строке." << endl;
        system("pause");
 
        cin >> b;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2016, 14:15
Ответы с готовыми решениями:

Найти номер строки матрицы, в которой находится самая длинная серия одинаковых элементов
2.Данная прямоугольная целочисленная матрица. Определить: 1)сколько столбцов,которые содержат хотя...

Найти номер строки матрицы, в которой находится самая длинная серия одинаковых элементов
Вот полное задание: 1) количество столбцов, содержащих хотя бы один нулевой элемент; 2) номер...

Определить номер строки, в которой находится самая длинная серия одинаковых элементов
помогите студенту с решением ... 1)в целочисленной квадратной матрице определить номер строки, в...

Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов
Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая...

1
102 / 95 / 104
Регистрация: 29.11.2009
Сообщений: 407
04.05.2016, 17:19 2
Abdulov, предположим матрица а[size][size] у нас есть, тогда :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    int max=0,count=0,max_i=0;
    bool flag=false;
    for (int i=0;i<size;i++){
        for(int j=0;j<size;j++){
            if(a[i][j]==a[i][j+1]){
                if(flag){
                    count++;
                }else{
                flag = true;
                count++;
                }
            }else{
                if(flag){
                    if(count>max){
                        max = count;
                        max_i = i;
                    }
                }
                count = 0;
                flag = false;
            }
        }
    }
    cout<<"ответ:"<<++max_i;
size - размер матрицы, flag - флаг, count - число повторяющихся элементов, max - максимальное количество повторяющихся элементов
0
04.05.2016, 17:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2016, 17:19
Помогаю со студенческими работами здесь

Номер столбца, в которой находится самая длинная серия одинаковых элементов.
Дана целочисленая прямоугольная матрица. Определить: 1)количество строк,содержащих хотя бы один...

Номер строки, в которой самая длинная серия одинаковых злементов
Написать программу, определяющую, в какой строке целочисленной матрицы m x n находится самая...

Двумерный массив: строка, в которой находится самая длинная серия одинаковых элементов
Дана целочисленная прямоугольная матрица. Определить: 1) Количество столбцов, содержащих хотя бы...

Определить номер столбца, в котором находится самая длинная серия одинаковых элементов
Здравствуйте. Мне нужно определить номер столбца, в котором находится самая длинная серия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru