Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
skileton1994
1 / 1 / 2
Регистрация: 05.07.2016
Сообщений: 93
1

Поиск длинной цепочки одинаковых элементов массива

06.07.2016, 14:49. Просмотров 343. Ответов 4
Метки нет (Все метки)

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

Написал вот так, но подсчёт ведётся не правильно, и не могу понять как записать по другому. Может кто подскажет как продолжить

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
#include <iostream>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
 
    const int n = 10;
    int A[n], i, kol=0;
    //Вводи элементов массива
    cout << "Введите элементы массива\n";
    for (i = 0; i < n; i++)
        cin >> A[i];
    //Вывод массива
    for (i = 0; i < n; i++)
        cout << A[i] << "  ";
 
    for (i = 0; i < n; i++)
    {
        if (A[i] == A[i + 1])
            kol++;
        
    }
    cout << endl;
    cout << kol << endl;
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 14:49
Ответы с готовыми решениями:

Поиск самой длинной цепочки из подряд идущих одинаковых элементов в массиве
Помогите пожалуйста решить программу. Если можно как можно проще используя...

Функция поиска самой длинной цепочки элементов массива
Доброго времени суток форумчане! Препод взвалил непосильную на данный момент...

Нахождение самой длинной цепочки отрицательных элементов с использованием указателей
В одномерном массиве из 100 элементов найти самую длинную цепочку отрицательных...

Поиск одинаковых элементов массива
#include &lt;conio.h&gt; #include &lt;locale&gt; #include &lt;iostream&gt; using namespace...

Поиск одинаковых элементов одномерного массива
Помогите сделать поиск одинаковых элементов одномерного массива С++ for (int...

4
ivan37
58 / 58 / 57
Регистрация: 11.05.2015
Сообщений: 141
06.07.2016, 15:03 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    kol = 1;
    max = 0;
    for (i = 0; i < n-1; i++)
    {
        if (A[i] == A[i + 1])
            kol++;
        else
        {
            if (kol > max)
                max = kol;
            kol = 1;
        }
    }
    cout << max << endl;
0
skileton1994
1 / 1 / 2
Регистрация: 05.07.2016
Сообщений: 93
06.07.2016, 15:58  [ТС] 3
Попробовал сделать так, но он проверяет только до первой последовательности одинаковых чисел. но таких может быть не сколько
0
ivan37
58 / 58 / 57
Регистрация: 11.05.2015
Сообщений: 141
06.07.2016, 17:21 4
Да, я немного ошибся, если после цикла добавить строчку
C++
1
max = (kol > max) ? kol : max;
то все должно правильно работать.

Добавлено через 4 минуты
Или как вариант:
C++
1
2
3
4
5
6
7
8
9
    for (i = 0; i < n-1; i++)
    {
        if (A[i] == A[i + 1])
            kol++;
        else
            kol = 1;
        if (kol > max)
            max = kol;
    }
0
skileton1994
1 / 1 / 2
Регистрация: 05.07.2016
Сообщений: 93
06.07.2016, 19:13  [ТС] 5
всё работает. спасибо за помощь
0
06.07.2016, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 19:13

Найти строку матрицы с самой длинной серией одинаковых элементов
Нужно в матрице найти строку с самой длинной серией одинаковых...

Вывести номер строки матрицы с самой длинной последовательностью одинаковых элементов
Пожалуста, кто знает решите пожалуста задачку: Дана квадратная матрица m*m,...

Двумерный массив. Определить номер строки с самой длинной серией одинаковых элементов
Всем привет! Нужна помощь в следующем задании: дана целочисленная прямоугольная...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru