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

Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел, и количество элементов в этой последовательности - C++

Восстановить пароль Регистрация
 
Stg
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 3
21.01.2013, 14:28     Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел, и количество элементов в этой последовательности #1
Здравствуйте уважаемые форумчане. Помогите пожалуйста. Собственно задача на С++:

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

Суть проблемы в том, что не могу сделать следующее: "Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел" и как следствие: "Если таких последовательностей несколько, то вывести номер первой из них." Всё остальное работает более-менее прилично.

Собственно код всего остального:

C++ (Qt)
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
#include<iostream>
#include <ctime> 
using namespace std;
int main()
{ 
    int n,i,c,firs_value,last_value;
   srand( time( 0 ));
   cout<<"Vvedite Chislo simvolov"<<endl;
   cin>>n;
     
     firs_value=0;
       
       last_value=1;
          int a[n];  
          for (i=0;i<n;i++){
          a[i]=firs_value + rand() % (last_value-firs_value+1);
          cout<<a[i]<<"  ";
          }
          cout <<"  "<< endl;
    
   
   unsigned int start_time = clock(); 
int k=1; int max=0;
           for (i=0; i<n; i++)
          if  (a[i]==a[i+1]) k++;
          else 
          {
               if (k>max)
               max=k;
         k=1;
          }
           cout <<"Kolichestvo znakov = "<<max<<endl;
         int d=1; 
      
      
      
           
            
                              
   unsigned int end_time = clock(); 
   unsigned int search_time = end_time - start_time; 
   cout<<"vremya poiska  "<<search_time<<endl;
   system("pause");
   return 0;
}
Я понимаю, что там должен быть какой-то цикл, но какой конкретно, не знаю. Напишите хотя бы примерный.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 14:28     Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел, и количество элементов в этой последовательности
Посмотрите здесь:

Номер столбца, в которой находится самая длинная серия одинаковых элементов. C++
Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия C++
Дана последовательность из n целых чисел. Найти номер минимального элемента в этой последовательности. C++
C++ номер строки, в которой находится самая длинная серия одинаковых элементов
Определить номер столбца, в котором находится самая длинная серия одинаковых элементов C++
C++ Найти номер элемента, с которого начинается самая длинная последовательность единиц
C++ Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия.
Дана последовательность из n целых чисел. Найти количество нечетных элементов этой последовательности C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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