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

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

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

Доброго времени суток.
Помогите пожалуйста решить задачу.
Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве.
За ранее огромная благодарность.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2014, 11:11
Ответы с готовыми решениями:

В заданном массиве подсчитать максимальное количество идущих подряд отрицательных элементов
Помогите надо в 27-30 что то изменить чтобы работало Дан одномерный массив А, состоящий из N...

Подсчитать максимальное количество подряд идущих отрицательных элементов.
Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество подряд идущих...

Найти количество одинаковых элементов подряд в одномерном массиве
Здравствуйте!!!Помогите, пожалуйста, написать программу:Подсчитать количество одинаковых элементов...

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

4
Эксперт по математике/физикеЭксперт С++
1942 / 1280 / 367
Регистрация: 16.05.2013
Сообщений: 3,339
Записей в блоге: 6
19.02.2014, 11:23 2
Лучший ответ Сообщение было отмечено Ilot как решение

Решение

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;
}
1
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 8
19.02.2014, 11:29  [ТС] 3
Спасибо БОЛЬШОЕ, а можно ли получить объяснение к этому коду?
0
Эксперт по математике/физикеЭксперт С++
1942 / 1280 / 367
Регистрация: 16.05.2013
Сообщений: 3,339
Записей в блоге: 6
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;
}
1
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 8
19.02.2014, 11:45  [ТС] 5
Благодарю
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2014, 11:45

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

Определить максимальное количество одинаковых символов, идущих подряд
Ввести строку с клавиатуры. Определить максимальное количество одинаковых символов, идущих подряд....

Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить
задан одномерный массив, если в нем встречаются 2 подряд идущих одинаковых числа, то одно нужно...

Подсчитать наибольшее количество одинаковых подряд идущих чисел последовательности
Даны целые числа x1, ..., xn. Подсчитать наибольшее количество одинаковых подряд идущих чисел...


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

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

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