#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <numeric>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
srand((unsigned)time(0));
int size = 100;
vector<int> coll;
int min = rand() % 100;
for(int i = 0;i < size;++i)
coll.push_back(min++);
random_shuffle(coll.begin(),coll.end());
copy(coll.begin(),coll.end(),
ostream_iterator<int>(cout," "));
cout << endl;
vector<int>::iterator pos1 = min_element(coll.begin(),coll.end());
vector<int>::iterator pos2 = max_element(coll.begin(),coll.end());
cout << "min_value " << *pos1 << " position: " << distance(coll.begin(),pos1) << endl;
cout << "max_value " << *pos2 << " position: " << distance(coll.begin(),pos2) << endl;
if(distance(coll.begin(),pos1) < distance(coll.begin(),pos2))
cout << accumulate(pos1,pos2 + 1,0) << endl;
else
cout << accumulate(pos2,pos1 + 1,0) << endl;
return 0;
}
найти сумму последовательности чисел С++
Дана последовательность из 100 РАЗЛИЧНЫХ целых чисел, найти сумму чисел этой последовательности,расположенных между максимальным и минимальным числами(в сумму включить и оба этих числа)
Получаем случ.число от 0 до 100 и от него заполняем массив.Размерность массива 100.Перемешиваем,печатаем.Находим минимальный и максимальный элементы,определяем их позиции.Вычисляем сумму интервала при помощи алгоритма accumulate.