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

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

Войти
Регистрация
Восстановить пароль
 
AlexeySlavin
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 18
#1

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

19.01.2013, 13:27. Просмотров 883. Ответов 5
Метки нет (Все метки)

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

Найти непрерывный участок из 10 элементов, сумма которых максимальная - C++
Задание такое: Найти непрерывный участок из 10 элементов, сумма которых максимальная. Нельзя использовать индексацию. Максимальную...

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов - C++
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов Добавлено через 12 минут Дан массив...

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов - C++
Нужно найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов. Но без использования операции...

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

Найти непрерывный участок - C++
Найти непрерывный участок из 10 элементов, сумма которых максимальна. Размер массива 50-200, диапазон чисел в массиве 0-100. Подскажите...

Найти непрерывный участок последовательности - C++
Здравствуйте, уважаемые форумчане!! Помогите разобраться с лабораторной работой: Дан массив размером в 200 элементов.Нужно найти...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.01.2013, 16:16     Найти непрерывный участок из 10 элементов, сумма которых максимальна #2
Если массив a[] размером 200 уже есть, то можно так вывести непрерывный участок из 10 элементов, сумма которых максимальна:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int s=0, tmp=0, i_max=0, i, j;
for(i=0; i<10; i++)
    s+=a[i];
tmp=s;
for(i=1; i<191; i++)
{
    tmp+=a[i+9]-a[i-1];
    if(tmp>s)
    {
        s=tmp;
        i_max=i;
    }
}
cout<<"Res:"<<endl;
for(i=0; i<10; i++)
    cout<<a[i_max+i]<<" ";
AlexeySlavin
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 18
21.01.2013, 17:32  [ТС]     Найти непрерывный участок из 10 элементов, сумма которых максимальна #3
объясните как Вы это сделали?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.01.2013, 19:09     Найти непрерывный участок из 10 элементов, сумма которых максимальна #4
Цитата Сообщение от AlexeySlavin Посмотреть сообщение
объясните как Вы это сделали?
см комментарии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int s=0, tmp=0, i_max=0, i, j;// i_max=0 - считаем что наибольшая сумма начинается с элемента с индексом 0
for(i=0; i<10; i++)// суммируем первые 10 элементов
    s+=a[i];// по окончании этого цикла в переменной s сумма первых 10 элементов (считаем пока ее наибольшей возможной суммой)
tmp=s;// в переменную tmp записываем значение суммы первых 10 элементов
for(i=1; i<191; i++)
{
    tmp+=a[i+9]-a[i-1];// для нахождения очередной суммы отнимаем левый элемент (относительно очередной 10-ки элементов) и прибавляем правый элемент
    if(tmp>s)// если очередная сумма больше значения записанного в s
    {
        s=tmp;// меняем значение в переменной s
        i_max=i;// записываем новый индекс в переменную i_max
    }
}
cout<<"Res:"<<endl;
for(i=0; i<10; i++)// выводим 10 элементов с максимальной суммой
    cout<<a[i_max+i]<<" ";
MickeyBlueEyes
Студент
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
21.01.2013, 20:37     Найти непрерывный участок из 10 элементов, сумма которых максимальна #5
У меня так вышло.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include<iostream>
#include <time.h>
using namespace std;
 
void main(int argc, char ** argv){
 
    const int size = 200;
 
    int arr[size] = {0};
 
    int max_o = 0, max_f = 0, index_in = 0;
 
    //Забъём случайными числами массив  
    srand(time(NULL));
    for(int i = 0; i < size; i++){
        arr[i] = rand() % 100;
    }
 
    for(int i = 0; i < size; i++){
        if(i % 10 == 0){
            if(max_f > max_o){
                max_o = max_f;
                index_in = i - 10;
            }
            max_f = 0;
        } else {
            max_f += arr[i];
        }
    }
    
    cout << "start index = " << index_in << endl;
 
    cout << "[";
    for(int i = 0; i < 10; i++){
        cout << arr[index_in + i];          
        if(i == 9){
            cout << "]";
        } else {
            cout << ", ";
        }
    }
 
    getchar();
    getchar();
    
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2013, 21:19     Найти непрерывный участок из 10 элементов, сумма которых максимальна
Еще ссылки по теме:

найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением - C++
Проверьте пожалуйста, почему все средние значения (второй массив) одинаковы Задание: найти в массиве непрерывный участок из 10 чисел с...

Найти два соседних элемента массива, сумма которых максимальна - C++
Доброго времени суток! Прошу помощи в решении следущих задач, которые впрочем можно решить и на Borland C++ Builder, но я предпочитаю...

Найти в массиве три последовательных элемента, сумма которых максимальна - C++
3) Найдите три последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов.

В двумерном массиве A[N][M] поменять местами строки,в которых сумма элементов максимальна и минимальна. - C++
Помогите пожалуйста..

Найти порядковые номера двух соседних чисел, сумма которых максимальна. - C++
7.79. Дана последовательность целых чисел Х1, Х2,..., Хn где n &gt;= 3. Найти: в) порядковые номера двух соседних чисел, сумма которых...

Найти квадрат матрицы, в котором сумма диагональных элементов максимальна - C++
В двумерном массиве найдите квадрат размером 3х3,в котором сумма диагональных элементов максимальна.Выведите его на экран. Только начинаю...


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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.01.2013, 21:19     Найти непрерывный участок из 10 элементов, сумма которых максимальна #6
MickeyBlueEyes, если коротко об ошибках, то так:
- вообще не учитываются значения элементов с индексами кратными 10;
- рассматриваются суммы элементов таким образом: сумма элементов с индексами 1-9, сумма элементов с индексами 11-19, сумма элементов с индексами 21-29, и т.д (т.е. суммы 9-ти элементов, а не 10-ти). А нужно рассматривать так: сумма элементов с индексами 0-9, сумма элементов с индексами 1-10, сумма элементов с индексами 2-11, и т.д.
Yandex
Объявления
21.01.2013, 21:19     Найти непрерывный участок из 10 элементов, сумма которых максимальна
Ответ Создать тему
Опции темы

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