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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему в конце программа сама закрывается? http://www.cyberforum.ru/cpp-beginners/thread767881.html
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h> float f(float x,int e) { float S=1,n=1; for (int i=1;i<100;i++)
C++ Найти объем цилиндра найти объем цилиндра V=PI*R*R*H 1.задать переменную:число ПИ,ввести 2 переменные:радиус основания и высоту. 2. организуйте проверку,чтобы радиус был меньше высоты,если это не так выполнять ввод данных до тех пор,пока условие не будет верно. 3. заполните массив 10-ю значениями объемов различных цилиндров: уменьшая радиус на 1 на четных шагах, и увеличивая высоту в 0,5 раз на нечетных. 4.... http://www.cyberforum.ru/cpp-beginners/thread767872.html
C++ Описать класс «матрица целых чисел» для представления разреженных матриц большого размера
Привет всем. Помогите написать лабу!!!! Тема:Классы Задание:Класс должен содержать конструктор по умолчанию, конструктор с параметрами, конструктор копирования, деструктор. Также класс должен содержать методы, перечисленные в каждом задании. Код класса нужно оформить в виде двух файлов: заголовочного файла с объявлением класса и файла реализации. Для демонстрации возможностей класса ...
C++ new не работает со структурой у которой перегружены скобки
struct Coordinate { int x,y; Coordinate(int a1, int b1) : x(a1),y(b1) { } void operator()(int a,int b) { x=a; y=b; } };
C++ Найти значение функции sinx с заданной точностью ε, используя данное разложение http://www.cyberforum.ru/cpp-beginners/thread767851.html
3. Функция sinxраскладывается в ряд вида: sinx=x-x^3/(3!)+x^5/(5!)-...+(-1)^n * x2n+1/((2n+1)!)+... Найти значение функции sinx с заданной точностью ε, используя данное разложение.
C++ Создать новый массив А1, содержащий все четные элементы массива А, расположенные по возрастанию 2. Дан целочисленный массив А размером Н. Создать новый массив А1, содержащий все четные элементы массива А, расположенные по возрастанию. Создать новый массив А2, содержащий все нечетные элементы массива А, расположенных по убыванию. Из исходного массива А удалить все ненулевые элементы. подробнее

Показать сообщение отдельно
Stg
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 3

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

21.01.2013, 14:28. Просмотров 451. Ответов 0
Метки (Все метки)

Здравствуйте уважаемые форумчане. Помогите пожалуйста. Собственно задача на С++:

Дано целое число 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;
}
Я понимаю, что там должен быть какой-то цикл, но какой конкретно, не знаю. Напишите хотя бы примерный.

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