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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Daniyar86
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 8
#1

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

19.02.2014, 11:11. Просмотров 1083. Ответов 4
Метки нет (Все метки)

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

Подсчитать максимальное количество подряд идущих отрицательных элементов. C++
Найти наименьшее количество одинаковых, идущих подряд элементов C++
C++ В одномерном массиве вычислить цепочку подряд идущих элементов
Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить C++
C++ Определить максимальное количество одинаковых символов, идущих подряд
Найти в массиве наибольшее число подряд идущих одинаковых элементов C++
Подсчитать наибольшее количество одинаковых подряд идущих чисел последовательности C++
C++ В целочисленном массиве вывести все группы идущих подряд одинаковых элементов
В заданном массиве подсчитать максимальное количество идущих подряд отрицательных элементов C++
C++ Поиск самой длинной цепочки из подряд идущих одинаковых элементов в массиве
C++ Найти максимальное количество подряд идущих отрицательных элементов в заданном массиве
Посчитать максимальное количество подряд идущих отрицательных элементов в целочисленном массиве C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 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
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 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     Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве.
Ответ Создать тему
Опции темы

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