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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
S1lentZ0mb1E
1 / 1 / 1
Регистрация: 16.12.2009
Сообщений: 31
#1

Найти непрерывный участок - C++

16.12.2011, 14:08. Просмотров 616. Ответов 1
Метки нет (Все метки)

Найти непрерывный участок из 10 элементов, сумма которых максимальна. Размер массива 50-200, диапазон чисел в массиве 0-100. Подскажите пожалуйста как это можно реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 14:08     Найти непрерывный участок
Посмотрите здесь:

найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением C++
Непрерывный ввод массива C++
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
C++ Поле выполнения цикла получается непрерывный поток данных
C++ Найти непрерывный участок из 10 элементов, сумма которых максимальна
Участок B кода выполняется позже, чем участок A кода, но почему-то B влияет на работоспособность A! Почему? C++
C++ Сгенерировать непрерывный синус
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
C++ Объясните участок кода
C++ Найти непрерывный участок последовательности
Найти непрерывный участок из 10 элементов, сумма которых максимальная C++
непрерывный рюкзак C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
16.12.2011, 16:33     Найти непрерывный участок #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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int continued_range(int ival, int* arr, int size) {
   int sum, tmp = 0, k = 0;
   for(int j = 0; j <= size - ival; j++) {
       sum = 0;
       for(int i = j; i < j + ival; i++) 
             sum += arr[i];
       if(sum > tmp) {
            tmp = sum;
            k = j;
       }
  }
  return k;
}
 
int main(void) {
   const int size = 200;
   int arr[size];
   int interval = 10;
 
   srand(time(NULL));
   for(int n = 0; n < size; n++)
        arr[n] = rand() % 101;
 
   int i = continued_range(interval, arr, size);
   for(int j = i; j < i + interval; j++)
        std::cout << arr[j] << "  ";
   std::cout.put('\n');
   return 0;
}
Yandex
Объявления
16.12.2011, 16:33     Найти непрерывный участок
Ответ Создать тему
Опции темы

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