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

Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) - C++

Восстановить пароль Регистрация
 
Anton18
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 5
04.12.2012, 23:04     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #1
Вобщем в одномерном массиве нужно вычислить количество элементов в самой длинной серии. Серия - это последовательность элементов, которые размещены рядом. Буду очень благодарен за помощь, желательно до завтра, т.к. завтра - аттестация по данному предмету, и мне не поздоровится. С++

Добавлено через 2 часа 39 минут
Помогите пожалуйста,очень надо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 23:04     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии)
Посмотрите здесь:

C++ Подсчитать количество символов в самой длинной группе.
Дана строка из нулей и единиц. Подсчитать количество символов в самой длинной группе C++
C++ Подсчитать количество символов в самой длинной группе
C++ Поиск самой длиной серии одинаковых элементов в двумерном массиве
Программа с одномерным массивом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
04.12.2012, 23:11     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #2
Интересно, а по какому принципу серия определяется? Рядом все пятерки, например? Или же только числа, идущие строго по возрастанию (1,2,3...)? Условия явно неполное.
Anton18
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 5
04.12.2012, 23:24  [ТС]     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #3
Вобщем у нас есть генератор элементов этого массива, и нам нужно определить сколько одинаковы элементов размещены рядом.(2 3 4 5 5 6 2) -пример массива, мы видим что 5 и 5 рядом, нужно написать что количество равно 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
31
32
33
34
35
36
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
 
int n; 
int a[10];
void input() 
{
 
 
 srand((unsigned)(time(NULL)));
 cout<<"input amount of the massive elements(<=10)"<<endl;
 cin>>n;
 for (int i=0;i<n;++i)
  a[i]=rand()%10;
}
void output()
{
    
 
 for (int i=0;i<n;++i)
  cout<<a[i]<<" ";
 cout<<endl;
}
 
 
int main()
{
 cout<<"insertion sort"<<endl;
 input();
 cout<<"generated array"<<endl;
 output();
 system("pause");
}
вот код, который генерирует радномный массив
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
04.12.2012, 23:58     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #4
Код писать лень, но думаю, суть уловишь. Вот примерный алгоритм. Сначала сравниваешь попарно элементы в массиве, начиная с нулевого, стоящие рядом, т.е. a[i] и a[i+1], если они равны, сравниваешь дальше с a[i+2], и пока элементы оказываются равными, увеличиваешь какой-нибудь новый счетчик на 1, лучше реализовать структурой struct, чтобы информация о элементе и его повторении сохранялась, потом сравниваешь все счетчики, выдаешь число, у которого счетчик больше всего натикал.
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
05.12.2012, 02:51     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #5
попытался, не хочет выводить счетчик. попробуй напиши просто эту функцию, с меня причетается

Добавлено через 20 минут
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
44
45
46
47
48
49
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
 
int n,j,tmp; 
int a[10];
void input() 
{
    
 
    srand((unsigned)(time(NULL)));
    cout<<"input amount of the massive elements(<=10)"<<endl;
    cin>>n;
    for (int i=0;i<n;++i)
        a[i]=rand()%10;
}
void output()
{
    int i;
    
    for (i=0;i<n;++i)
        cout<<a[i]<<" ";
    cout<<endl;
    
}
 
void series()
{ 
    int i;
    for (int k=1;k<=n;k++)
    {
        if (a[i]=a[i+k])
            tmp+=1;
    }
}
    
 
int main()
{
    cout<<"insertion sort"<<endl;
    input();
    cout<<"generated array"<<endl;
    output();
    cout<<"kolichestvo= "<<endl;
        series();
    system("pause");
}
выводит всегда что количество =0.

Добавлено через 47 минут
помогите, умоляю, найдите ошибку
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.12.2012, 03:21     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) #6
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
 
int main()
{
    int a[] = {2, 3, 4, 5, 5, 6, 2, 4,4,4,4,4,5,4,2,3,1,5,3,2,3,3,3,3,56,2};
    int *AdjIt, *Mismatch=a, MaxCount = 1;
    while((AdjIt = std::adjacent_find(Mismatch, a+26)) != (a+26))
        MaxCount=(std::distance(AdjIt,(Mismatch=std::find_if(AdjIt,a+26,[AdjIt](int num){return(num != *AdjIt);})))>MaxCount)?std::distance(AdjIt, Mismatch):MaxCount;
    std::cout<<MaxCount<<std::endl;
}
Yandex
Объявления
05.12.2012, 03:21     Программа с одномерным массивом (вычислить количество элементов в самой длинной серии)
Ответ Создать тему
Опции темы

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