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

Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю

08.10.2016, 05:03. Показов 2076. Ответов 15
Метки нет (Все метки)

Задан одномерный массив. Найти длину самой длинной последовательности подряд идущих элементов массива,равных нулю. Написал на паскале нужно на C++,помогите пожалуйста.
Pascal
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
var
    a: Array[Byte] Of ShortInt;
    i, n, maxCount, count: Byte;
begin
    Write('n='); ReadLn(n);
    Randomize; maxCount := 0; count := 0;
    for i := 0 to n - 1 do
    begin
        a[i] := Random(5) - 2;
        WriteLn(a[i]:3);
        if (a[i] = 0)
        then
            Inc(count)
        else
        begin
            if (count > maxCount)
            then
                maxCount := count;
            count := 0;
        end;
    end;
    if (count > maxCount)
    then
        maxCount := count;
    WriteLn('Max Count: ', maxCount);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2016, 05:03
Ответы с готовыми решениями:

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд идущих элементов...

Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов...

Определить длину самой большой последовательности подряд идущих согласных
В строке записаны несколько предложений . Каждое предложение заканчивается точкой, вопросительным...

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

15
Заблокирован
08.10.2016, 06:16 2
и что код работает, можно скриншот?
0
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 2
08.10.2016, 07:07  [ТС] 3
С компьютера возможности зайти нет.Вот вывод с онлайн компилятора
Миниатюры
Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю  
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
08.10.2016, 07:18 4
А Byte - это какое число?
0
Заблокирован
08.10.2016, 07:24 5
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
void main(int argc,char **argv)
{
    short a[sizeof(char)];
    char n, maxCount, count;
 
    cout<<"n="; 
    cin>>n;
    srand(unsigned(time(0))); 
    maxCount=count=0;
    for(int i=0; i<n; i++)
    {
        a[i]=rand()%5-2;
        cout<<a[i]<<endl;
        if (!a[i]) count++;
        else
        {
            if (count > maxCount) maxCount=count;
            count=0;
        }
    }
    if (count > maxCount) maxCount=count;
    cout<<"Max Count: "<<(int)maxCount<<endl;
    system("pause");
}
1
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
08.10.2016, 07:25 6
C++Builder 6.
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int a[20], i, n, maxcount, count;
 
cout << "n=";
cin >> n;
 
maxcount = 0;
count = 0;
for(i = 0; i < n; i++)
{
    a[i] = rand()%5 - 2;
    cout << a[i] << "\n";
    if(a[i] == 0)
    {
        count++;
    }
    else
    {
        if(count > maxcount)
        {
            maxcount = count;
        }
        count = 0;
    }
}
if(count > maxcount)
{
    maxcount = count;
}
cout << "MaxCount: " << maxcount;
 
getch();
return 0;
}
//---------------------------------------------------------------------------
1
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 07:34 7
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
#include <iostream> 
 
using namespace std;
 
const int N = 12;
 
int main()
{
    int A[N] = { 0, 5, 0, 0, 0, 4, 1, 6, 0, 0, 0, 0 };
 
    for (int index = 0; index < N; index++)
        std::cout << A[index] << " ";
 
    std::cout << endl << endl;
 
    int max_pos = -1, max_len = 0;
    for (int index = 0; index < N; index++)
    {
        int r = index;
        while (A[index] == A[index + 1] &&
            A[index] == 0 && index < N) index++;
 
        if (std::abs(r - index) > max_len || max_pos == -1)
        {
            max_pos = r;
            max_len = std::abs(r - index);
        }
    }
 
    std::cout << "The longest 0 sequence occurence at position: " << max_pos << " with lengh: " << max_len + 1 << endl;
 
    std::cin.get();
}
Миниатюры
Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю  
1
Эксперт CЭксперт С++
5087 / 2272 / 332
Регистрация: 20.02.2013
Сообщений: 5,598
Записей в блоге: 19
08.10.2016, 07:57 8
Invader0x7F, зачем размер массива делать в глобальной области видимости? Ну вот зачем?

Стив Макконнелл

Начинайте с самой ограниченной области видимости и расширяйте ее только при необходимости
Чтобы минимизировать область видимости переменной, постарайтесь сделать ее как можно более локальной. Область видимости гораздо сложнее сжать, чем расширить — иначе говоря, превратить глобальную переменную в переменную класса сложнее, чем наоборот. Защищенные данные-члены класса также сложнее превратить в закрытые, чем закрытые в защищенные. Так что, если сомневаетесь, выбирайте наименьшую возможную область видимости переменной: попытайтесь сделать переменную локальной для отдельного цикла, локальной для конкретного метода, затем — закрытой переменной класса, затем — защищенной, далее попробуйте включить ее в пакет (если ваш язык программирования поддерживает пакеты) и лишь в крайнем случае сделайте ее глобальной.
0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 08:08 9
C++
1
2
3
4
5
6
7
8
#include <iostream> 
 
using namespace std;
 
int main()
{
    const int N = 12;
    int A[N] = { 0, 5, 0, 0, 0, 4, 1, 6, 0, 0, 0, 0 };
0
Заблокирован
08.10.2016, 10:32 10
Цитата Сообщение от Invader0x7F Посмотреть сообщение
int A[N] = { 0, 5, 0, 0, 0, 4, 1, 6, 0, 0, 0, 0 };
for (int index = 0; index < N; index++)
* * * * std::cout << A[index] << " ";
std::cout << endl << endl;
Не правильно работает (введи)
C++
1
0, 2, 3, 2, 0, 0, 3, 0, 0, 0
Добавлено через 4 минуты
var1
C++
1
2
3
4
5
6
   int init[] = {0, 2, 3, 2, 0, 0, 3, 0, 0, 0};
    int max = 0;
    for (int i = 0, count = 0; i < 10; i++)
        if (!init[i]) max = std::max(max, ++count);
        else count = 0;
    cout << max;
var 2
C++
1
2
3
4
5
6
7
8
9
10
   int init[] = {0, 2, 3, 2, 0, 0, 3, 0, 0, 0};
        int* first = init;
        int max = 0;
        while ((first = std::find(first, init + 10, 0)) != init + 10) {
            int* last = std::find_if(first, init + 10, std::bind(std::not_equal_to<int>(), std::placeholders::_1, 0));
            iterator_traits<int*>::difference_type result = std::distance(first, last);
            max = std::max(max, result);
            first = last;
        }
        cout << max;

Не по теме:

gru74ik, вам бы следовало наконец-то обзавестись своим умом, а не заниматься постоянным копированием чужого мнения, на форумах. Принимая чьи-то советы за "истину божью". Если, конечно, это возможно. Удачи.

0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 10:32 11
Ну знаете, что, а размерность вы правильно поставили N = 10 ????

Вот все работает!!!!
Миниатюры
Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю  
0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 10:36 12
С использованием STL я умею сам, но это здесь не нужно. Пользователь ondgik123 уже поблагодарил за мой ответ, значит этот ответ его устраивает: Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю
0
sourcerer
08.10.2016, 13:28
  #13

Не по теме:


Цитата Сообщение от Dsasdf Посмотреть сообщение
gru74ik, вам бы следовало наконец-то обзавестись своим умом, а не заниматься постоянным копированием чужого мнения, на форумах. Принимая чьи-то советы за "истину божью".
Dsasdf, что за дичь! Мы все копируем, подражаем, заимствуем, опираемся на плечи гигантов, бывших перед нами. Это нормально. И Вы - не исключение. Вы тоже копируете, подражаете, заимствуете. "Иметь свой ум" - это что-то из детских фантазий, типа "ко-ко-ко, я буду не такой, как все". Если только Вы не Будда или Бодхидхарма, которые, если верить дошедшим до нас легендам, избавились от всякой обусловленности.

0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 13:30 14
Не по теме:
Цитата Сообщение от Dsasdf Посмотреть сообщение
gru74ik, вам бы следовало наконец-то обзавестись своим умом, а не заниматься постоянным копированием чужого мнения, на форумах. Принимая чьи-то советы за "истину божью". Если, конечно, это возможно. Удачи.
Что за дичь! Мы все копируем, подражаем, заимствуем, опираемся на плечи гигантов, бывших перед нами. Это нормально. И Вы - не исключение. Вы тоже копируете, подражаете, заимствуете. "Иметь свой ум" - это что-то из детских фантазий, типа "ко-ко-ко, я буду не такой, как все". Если только Вы не Будда или Бодхидхарма, которые, если верить дошедшим до нас легендам, избавились от всякой обусловленности.
К чему это ?? И к кому именно адресован этот пост ????
0
sourcerer
08.10.2016, 13:47
  #15

Не по теме:


Цитата Сообщение от Invader0x7F Посмотреть сообщение
К чему это ??
Отповедь задире.

Цитата Сообщение от Invader0x7F Посмотреть сообщение
к кому именно адресован этот пост ????
Кого цитирую, к тому и адресован.

0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
08.10.2016, 13:51 16
Понял. спасибо за ответ.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2016, 13:51
Помогаю со студенческими работами здесь

Создать массив A(n) и найти длину самойдлиной последовательности подряд идущих элементов
Задан числовой массив A.Найти длинну самой длинной последовательности подряд идущих элементов...

Найти место вхождения в строку самой длинной последовательности пробелов и определить ее длину
Доброго времени суток! нужно найти место вхождения в строку самой длинной последовательности...

Определить длину самой длинной подстроки из подряд стоящих букв «е»
Прошу проверить программу на правильность. Условие: Дана символьная строка. Определить длину самой...

В заданной последовательности найти количество элементов равных нулю
3)Дано n-ое количество элементов, вычислить количество нулей.


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

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

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