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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ блок-схема http://www.cyberforum.ru/cpp-beginners/thread142900.html
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> struct inf{ char surname; char name; char date; char misto;
C++ Какой интерфейс сделать для стека Здравствуйте уважаемые форумчане. Для стека нужно сделать графический интерфейс, как лучше реализовать не знаю. Подскажите как лучше это сделать. Глупо наверное, но есть мысль на CLR форму запихнуть dataGridView, сбоку сделать кнопки для работы со стеком, что на счет этого думаете. Или лучше чтобы каждый элемент стека это был label и отображать их на форме в виде колонки. http://www.cyberforum.ru/cpp-beginners/thread142895.html
C++ Возникает ошибка при использовании fscanf
Здраствуйте. Возникла такая проблема что при попытке что-то сделать с временной строкой 'с' выдается виндовская ошибка что пямать не может быть read. даже вывести ее после сканфа не получается. помогите пожалуйста разобраться.запускается следующим образом сначала пишите исполняемый фаил затем затем фаил с которым работаете. например "\lab file.txt" #include "stdio.h" #include <iostream>...
warning C4005: '_WIN32_WINDOWS' : macro redefinition C++
есть программа ,при компилирование выдает ошибку такого рода -------------------Configuration: DIPLOM_6 - Win32 Debug-------------------- Compiling... DIPLOM_6.cpp c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(119) : warning C4005: '_WIN32_WINDOWS' : macro redefinition i:\diplom_9\diplom_6\targetver.h(20) : see previous definition of '_WIN32_WINDOWS' NOTE:...
C++ Where to download C++ http://www.cyberforum.ru/cpp-beginners/thread142875.html
Where to download C++. Write plese! :scratch: Throw link!
C++ Задана динамическая матрица. Найти минимальный элемент матрицы Задана динамическая матрица размером NxN. Найти минимальный элемент матрицы. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
09.06.2010, 00:53     Найти такую непрерывную последовательность положительных чисел, сумма элементов в которой максимальна
Есть нюанс: 0 считается чётным беззнаковым числом. Он должен последовательность прерывать? Если нет, то вот:
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
49
50
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <cstdlib>  
#include <ctime>
 
// В произвольном массиве нужно найти такую непрерывную последовательность положительных чисел, 
// сумма элементов в которой максимальна.
// Размер массива: 200, диапазон : от -100 до 100.
 
int rand_num(){
    return rand() % 201 - 100;
}
 
int main(){
    const int SIZE = 200;
    int arr[SIZE];
    
    srand(time(NULL));
    std::generate(arr, arr + SIZE, rand_num);
    
    std::vector<int> pos, max_pos;
    int sum, max_sum = 0;
    for ( int i = 0; i < SIZE; ++i ){
        if ( arr[i] < 0 ){
            if ( ! pos.empty() ){
                if ( ( sum = std::accumulate(pos.begin(), pos.end(), 0) ) > max_sum ){
                    max_sum = sum;
                    max_pos = pos;
                }
                pos.clear();
            }
        }
        else
            pos.push_back(arr[i]);
    }
    std::cout << "Max sum of positive elements continuous sequence is:" << std::endl;
    std::copy(max_pos.begin(), max_pos.end(), std::ostream_iterator<int>(std::cout, " + "));
    std::cout << "\b\b\b = " << max_sum << std::endl;
    
    std::cout << "Print all array? (y/n): ";
    char c;
    std::cin >> c;
    if ( c == 'y' || c == 'Y' )
        std::copy(arr, arr + SIZE, std::ostream_iterator<int>(std::cout, "\t"));
    
    return 0;
}
если 0 прерывать последовательность должен, то нужно
C++
1
if ( arr[i] < 0 )
заменить на
C++
1
if ( arr[i] < 1 )
Добавлено через 57 секунд
а в прочем дремучим борландовским компилятором скорее всего ни так, ни эдак не скомпилится...
 
Текущее время: 12:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru