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

Расчет суммы или количества элементов массива, удовлетворяющих некоторому условию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определение максимального и минимального значений во время ввода данных http://www.cyberforum.ru/cpp-beginners/thread1070294.html
Даны натуральное число n и целые числа a1, a2,...,an. Найти номер максимального и номер минимального из чисел аi. Если чисел с максимальным или с минимальным значением несколько, то должны быть найдены номера последних из них. В заранее спасибо:)
C++ составить программу для вычисления конечных сумм а и добутков в составить программу для вычисления конечных сумм а и добутков в. выбрав функцию F(x)=2,574x. выбрав данные z=12a-b2. в результатах применить форматный вывод. извините если я пишу с ошибками я просто с Украины и не до конца умею правильно писать по-русски http://www.cyberforum.ru/cpp-beginners/thread1070282.html
C++ int glob уже определен в main.obj
Почему #ifndef не помогает? 1.h: #ifndef ONE_H #define ONE_H int glob; #endif
C++ Равнобедренная трапеция - найти точку пересечения боковых сторон
Равнобедренная трапеция задана координатами вершин. Найти точку пересечения боковых сторон. На С++. заранее благодарю.
C++ Провести программную реализацию расчета приблизительного значения функции y, разложив функцию в ряд Тейлора http://www.cyberforum.ru/cpp-beginners/thread1070258.html
Есть похожий код для задания: Провести программную реализацию расчета приблизительного значения функции y, разложив функцию f (x) в ряд Тейлора, при этом необходимо вывести и применить рекуррентное отношение для расчета общей части для каждого слагаемого ряда или его части. Аргумент функции должен изменяться в диапазоне с шагом Xdelta. Параметры Xbegin, Xend, Xdelta и точность (допустимая...
C++ X.509 Не удачный запрос: Cannot find the X.509 certificate using the following search criteria: StoreName "My" , StoreLocation "CurrentUser" , FindType "FindByIssuerName" ,FindValue "НУЦ РК (RSA)" Как разобрать и понять эту ошибку подробнее

Показать сообщение отдельно
Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.01.2014, 17:00     Расчет суммы или количества элементов массива, удовлетворяющих некоторому условию
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <algorithm>
#include <iterator>
#include <iostream>
#include <numeric>
#include <vector>
#include <random>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(-25, 25);
 
    size_t vectorSize;
    std::cout << "Size of vector: ";
    std::cin >> vectorSize;
 
    std::vector <int> vector(vectorSize);
    std::cout << "Vector: " << std::endl;
    std::generate(vector.begin(), vector.end(), [&]() -> int {
        return distribution(generator);
    });
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout, " "));
 
    size_t index(0);
    std::cout << std::endl << "Sum of elements with even indexes: ";
    std::cout << std::accumulate(vector.begin(), vector.end(), 0, [&index](int resultSum, int currentElement) -> int {
        resultSum += index++ % 2 ? currentElement : 0;
        return resultSum;
    }) << std::endl;
 
    int firstUserNumber;
    std::cout << "a: ";
    std::cin >> firstUserNumber;
    std::cout << "Sum of elements multiples of " << firstUserNumber << ": ";
    std::cout << std::accumulate(vector.begin(), vector.end(), 0, [firstUserNumber](int resultSum, int currentElement) -> int {
        resultSum += !(currentElement % firstUserNumber) ? currentElement : 0;
        return resultSum;
    }) << std::endl;
 
    int secondUserNumber;
    std::cout << "b: ";
    std::cin >> secondUserNumber;
    std::cout << "Sum of elements multiples of " << firstUserNumber << " or " << secondUserNumber << ": ";
    std::cout << std::accumulate(vector.begin(), vector.end(), 0, [firstUserNumber, secondUserNumber](int resultSum, int currentElement) -> int {
        resultSum += !(currentElement % firstUserNumber) || !(currentElement % secondUserNumber) ? currentElement : 0;
        return resultSum;
    }) << std::endl;
 
    std::system("pause");
    return 0;
}
 
Текущее время: 04:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru