Форум программистов, компьютерный форум CyberForum.ru

Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. - C++

Восстановить пароль Регистрация
 
Daniyar86
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 8
19.02.2014, 11:11     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. #1
Доброго времени суток.
Помогите пожалуйста решить задачу.
Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве.
За ранее огромная благодарность.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 11:11     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве.
Посмотрите здесь:

Подсчитать максимальное количество подряд идущих отрицательных элементов. C++
Найти наименьшее количество одинаковых, идущих подряд элементов C++
C++ В одномерном массиве вычислить цепочку подряд идущих элементов
Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить C++
C++ Определить максимальное количество одинаковых символов, идущих подряд
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
19.02.2014, 11:23     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. #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
#include<iostream>
#include<ctime>
int main()
{
    const int N = 30;
    int mass[N];
    srand(time(NULL));
    for (int j = 0; j < N; ++j)
        mass[j] = rand()%3;
 
    int count = 0, temp_count = 0;
    int pos = 0, temp_pos = 0;
    for(int j = 1; j < N; ++j)
        if (mass[j] == mass[j - 1]) {
            ++temp_count;
            if (temp_count > count) {
                count = temp_count;
                pos = temp_pos;
            }
        }
        else {
            temp_count = 1;
            temp_pos = j;
        }
    for (int j = 0; j < N; ++j)
        std::cout << mass[j] << ' ';
    std::cout << std::endl;
    std::cout << "pos: " << pos + 1 << ", count: " << count << std::endl;
    return 0;
}
Daniyar86
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 8
19.02.2014, 11:29  [ТС]     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. #3
Спасибо БОЛЬШОЕ, а можно ли получить объяснение к этому коду?
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
19.02.2014, 11:37     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. #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
29
30
#include<iostream>
#include<ctime>
int main()
{   
    const int N = 30; //Задать размерность массива
    int mass[N]; //Объявить массив
    srand(time(NULL));  //хрень, что бы рандомные последовательности не повторялись
    for (int j = 0; j < N; ++j)     
        mass[j] = rand()%3;         //Инициализируем массив
 
    int count = 0, temp_count = 0;  //Число элементов в последовательности соответственно максимальной и временной
    int pos = 0, temp_pos = 0;  //Позиция начала последовательности одинаковых элементов соответственно максимальной и временной
    for(int j = 1; j < N; ++j)
        if (mass[j] == mass[j - 1]) {   //Если текущий элемент равен предыдущему
            ++temp_count;   //Увеличить счетчик элементов во временной последовательности
            if (temp_count > count) {   //Если во временной последовательност ибольше элементов, чем в максимальной
                count = temp_count; //Обновить счетчик
                pos = temp_pos; //Перенести позицию начало максимальной последовательности
            }
        }
        else {
            temp_count = 1;     //объявить число элементов в новой последовательности
            temp_pos = j;   //запомнить позицию
        }
    for (int j = 0; j < N; ++j)
        std::cout << mass[j] << ' ';    //Вывести массив
    std::cout << std::endl;
    std::cout << "pos: " << pos + 1 << ", count: " << count << std::endl;   //Вывести позицию и число элементов в найденной последовательности
    return 0;
}
Daniyar86
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 8
19.02.2014, 11:45  [ТС]     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. #5
Благодарю
Yandex
Объявления
19.02.2014, 11:45     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве.
Ответ Создать тему
Опции темы

Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru