Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

найти сумму последовательности чисел С++

19K
23 апреля 2008 года
Paradoxek
45 / / 24.10.2007
Дана последовательность из 100 РАЗЛИЧНЫХ целых чисел, найти сумму чисел этой последовательности,расположенных между максимальным и минимальным числами(в сумму включить и оба этих числа)
320
23 апреля 2008 года
m_Valery
1.0K / / 08.01.2007
Получаем случ.число от 0 до 100 и от него заполняем массив.Размерность массива 100.Перемешиваем,печатаем.Находим минимальный и максимальный элементы,определяем их позиции.Вычисляем сумму интервала при помощи алгоритма accumulate.
Код:
#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;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог