Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вычислить произведение отрицательных элементов массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка, нужно символ в этой строке заменить ее порядковым номером. http://www.cyberforum.ru/cpp-beginners/thread751796.html
2) дана строка, нужно символ в этой строке заменить ее порядковым номером. помогите пожалуйста.
C++ Нужно инвертировать вторую половину строки. 1) нужно инвертировать вторую половину строки. помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread751794.html
Перевести код с Pascal C++
uses crt; const nmax=20; var a:array of integer; n,i,d:integer; f:boolean; begin repeat write('Размер массива до ',nmax,' n='); read(n); until n in ;
C++ Определить координаты вершин прямоугольного треугольника
определить координаты вершин прямоугольника наименьшего периметра содержащего треугольник координаты вершин котрого (x1,y1), (x2,y2), (x3,y3) не могу математически даже вникнуть в условие....
C++ Сравнение и замена символов http://www.cyberforum.ru/cpp-beginners/thread751778.html
У меня есть файл с которого я считываю информацию массив. Если встречается определенный символ то мне нужно заменить его на другой. И самой главное мне нужно уже обработанный текст со всеми заменами...
C++ Определить общее количество осадков за этот год Занести из файла в массив сведения о количестве осадков, выпавших за каждый из 12 месяцев одного года. Определить общее количество осадков за этот год, среднемесячное количество осадков, количество... подробнее

Показать сообщение отдельно
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.01.2013, 17:12
Ради интереса хотел через accumulate сделать, но не так то просто это оказалось. Вот что у меня получилось.
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
#include <iostream>
#include <algorithm>
#include <functional>
#include <numeric>
#include <array>
 
template<typename _InIt, typename _Ty, typename _Func1, typename _Func2>
_Ty accumulate_if(_InIt _First, _InIt _Last, _Ty _Val, _Func1 F1, _Func2 F2){
    for(; _First != _Last; ++_First)
        if( F2(*_First) )
            _Val = F1(_Val, *_First); 
    return _Val;
}
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
    using namespace std::placeholders;
    std::array<int, 10> ar = {-8,6,5,-7,-5,11,2,6,1,4};
 
    std::cout<<"1.) произведение отрицательных элементов массива: "<<
        accumulate_if(ar.begin(), ar.end(), 1, std::multiplies<int>(), std::bind(std::less<int>(), _1, 0))<<"\n";
 
    
    std::cout<<"2.) сумма положительных элементов массива, расположенных до максимального элемента: "<<
        accumulate_if(ar.begin(), std::max_element(ar.begin(), ar.end()), 0, std::plus<int>(), std::bind(std::greater<int>(), _1, 0))<<"\n";
 
    std::cout<<"\n";
    system("pause");
    return 0;
}
Шаблон функции взял отсюда accumulate if?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru