Другие языки программирования и технологии

Помогите написать программу на С++ которая в массиве чисел из Size элементов находит такую непрерывную

последовательность элементов, которая либо имеет максимальную сумму и является упорядоченной по возрастанию, либо имеет минимальную сумму и является упорядоченной по убыванию (должно выбираться опционально). Хотя алгоритм в виде плана по пунктам, даже не представляю, как искать такие последовательности.
Я так понял речь идёт о целых числах!
Сделать меню с опциями просто, сами догадаетесь.
Простым методом сравнения, текущего элемента массива с последующим и дальнейшим их сложением и занесением результатов в буферный массив.
В итоге сканируем буферный массивы на максимальное или минимальное число!
Если надо код программы то, это не скоро спать охота!
Павел Карасев
Павел Карасев
625
Лучший ответ
Вячеслав Воронин Идея понятна, меню с опциями не проблема. А буферный массив, если похожих последовательностей несколько, 2 или 3, то надо несколько буферных массивов? Как это реализовать? Сделать буферный динамический 2-мерный массив, или как-то проще?
поидее должно работать )

#include <conio.h>
#include <iostream>
#include <time.h>

using namespace std;

int main()
{
const int size=1000;
int mas[ size ];
int i,j;
int max_begin_num, max_end_numb, max_summ=0;
int min_begin_num, min_end_numb, min_summ=0;
int temp;

srand(time(NULL)); //для генератора случайных чисел
for(i=0;i < size;i++) mas[ i ] = rand()0;
min_summ=mas[ 0 ];
for(i=0;i < size;i++)
{

for(j=i,temp=0; mas[ j ] > mas[ j+1 ] && j < size; j++) temp +=mas[ j ];
if(temp > max_summ )
{
max_begin_num = i;
max_end_numb = j;
max_summ = temp;
}

for(j=i,temp=0; mas[ j ] < mas[ j+1 ] && j < size; j++) temp +=mas[ j ];
if(temp < min_summ && temp)
{
min_begin_num = i;
min_end_numb = j;
min_summ = temp;
}
}
cout << "max posledovatelnost nachinaetsia: " << max_begin_num << " zakanchivaetsia: " << max_end_numb << " ravna: " << max_summ << endl;
cout << "mix posledovatelnost nachinaetsia: " << min_begin_num << " zakanchivaetsia: " << min_end_numb << " ravna: " << min_summ << endl;

system("pause");
return 0;
}
Ceyhun Qedirov ошибка
#include
#include
#include
#include
+1 библиотека

плюс здесь
for(i=0;i < size;i++) mas[ i ] = rand();0;
потребовал компилятор ";"

Похожие вопросы