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

Определить длину наибольшей последовательности одинаковых чисел в массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Devil7
0 / 0 / 0
Регистрация: 05.10.2011
Сообщений: 97
06.12.2011, 19:53     Определить длину наибольшей последовательности одинаковых чисел в массиве #1
Определить длину наибольшей последовательности одинаковых чисел в массиве A (50) и вывести на экран значения элементов, из коорых она состоит, индексы начального и конечного элементов этой последовательности.

Добавлено через 47 минут
(((((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 19:53     Определить длину наибольшей последовательности одинаковых чисел в массиве
Посмотрите здесь:

В массиве целых чисел найти и распечатать все пары одинаковых чисел C++
определить в массиве длину самого длинного ряда повторяющихся чисел C++
C++ Определить, есть ли в последовательности хотя бы одна пара одинаковых "соседных" чисел
задачи в Двумерном массиве. Определить, есть ли в массиве два одинаковых элемента, поменять местами элементы C++
C++ Определить есть ли в последовательности хотя бы одна пара одинаковых чисел
C++ Вывести на экран длину наибольшей последовательности цифр, идущих подряд в строке
C++ Определить длину наибольшей подпоследовательности из подряд идущих нулей
C++ Поиск в массиве последовательности с наибольшей суммой

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
06.12.2011, 21:38     Определить длину наибольшей последовательности одинаковых чисел в массиве #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
#include <stdio.h>
 
int max_seq_len(const int* a, int* sz) {
   const int* p, *i;
   int x = 0, y = 0;
   for(i = a; i != a + *sz; ) {
         for(p = i; *p == *i && p != a + *sz; *p++);
         if((p - i) > x) {
              x = p - i;
              y = i - a;
              i += x;
         } else
             *i++;
    }
    *sz = x + y;
    return y;
}
 
 
int main(void){
  int arr[] = { 40, 40, 40, 8, 4, 4, 4, 7, 7, 7, 7, 0, 0 };
  int p, i, size  = sizeof(arr) / sizeof(arr[0]);
 
  p = max_seq_len(arr, &size);
  printf("len seq: %d\n", size - p);
  for(i = p; i < size; i++)
       printf("%d  ", arr[i]);
  getchar();
  return 0;
}
Yandex
Объявления
06.12.2011, 21:38     Определить длину наибольшей последовательности одинаковых чисел в массиве
Ответ Создать тему
Опции темы

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