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

Вычислить произведение отрицательных элементов массива - 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 месяцев одного года. Определить общее количество осадков за этот год, среднемесячное количество осадков, количество засушливых месяцев (когда количество осадков было меньше 30 мм), самый засушливый месяц года. Нахождение самого засушливого месяца оформить в виде функции, в которую необходимо передать в качестве... подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 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?
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru