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

Одномерые массивы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как извлечь корень из числа? http://www.cyberforum.ru/cpp-beginners/thread149608.html
Как извлечь корень из числа?
C++ Функция rand(); Нужно чтобы функция rand(); выдавала значения в заданном интервале то есть к примеру от 230 до 233 нужно чтобы выдавало числа 230 231 232 233 изначально был такой код http://www.cyberforum.ru/cpp-beginners/thread149602.html
C++ Матрицы
ХАРАКТЕРИСТИКОЙ СТОЛБЦА МАТРИЦЫ НАЗОВЕМ ПРОИЗВЕДЕНИЕ ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ С ЧЕТНЫМИ НОМЕРАМИ. УПОРЯДОЧИТЬ СТОЛБЦЫ МАТРИЦЫ ПО ВОЗРАСТАНИЯ ИХ ХАРАКТЕРИСТИК
C++ Описать функцию
Описать функцию для вывода на экран натуральных чисел из файла целых чисел в восьмеричном виде,не используя printf Добавлено через 1 час 31 минуту Очень надо:)
C++ работа с матрицами http://www.cyberforum.ru/cpp-beginners/thread149581.html
Помогите пожалуйста, кто-нибудь: Разработать программу «Матрица» со следующими операциями: сложение матриц, вычитание матриц, умножение матриц, умножение матрицы на число, деление матрицы на число. В программе использовать оператор switch
C++ массивы Здравствуйте. помогите пожалуйста в решении задач 1)Дан массив А. Каждый его элемент, кроме первого, заменить суммой всех предыдущих элементов (т.н. нарастающий итог). 2)Имеется целочисленный массив из n элементов. Напишите программу для ’сжатия’ этого массива путем выбрасывания из него одинаковых элементов подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.06.2010, 11:33     Одномерые массивы
Цитата Сообщение от Aloysha Посмотреть сообщение
подсчета наибольшего количества одинаковых элементов, расположенных последовательно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int MaxSequence(const int* arr, size_t size) {
        int result = 0;
  const int* end   = arr + size;
 
  for (const int* first = arr; first != end; ) {
    const int* last;
    for (last = first + 1; last != end && *last == *first; ++last)
      ;
 
    int length = last - first;
    if (length > result)
      result = length;
    
    first = last;
  }
 
  return result;
}
Результат: http://codepad.org/pEeIU2gZ

Вариант с STL:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <functional>
 
int MaxSequence(const int* arr, size_t size) {
  int result = 0;
 
  const int* last;
  for (const int* first = arr; first != arr + size; first = last) {
    last   = std::find_if(first , arr + size  , std::bind2nd(not_equal_to<int>(), *first));
    result = std::max    (result, last - first);
  }
 
  return result;
}
Результат: http://codepad.org/Y9diY8Fa
 
Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru