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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nutlet
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 15
#1

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

13.01.2014, 16:31. Просмотров 700. Ответов 3
Метки нет (Все метки)

Дан массив целых чисел. Найти:
а) сумму нечетных элементов;
б) сумму элементов, кратных заданному числу;
в) сумму элементов массива, кратных а или b.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2014, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет суммы или количества элементов массива, удовлетворяющих некоторому условию (C++):

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В массиве записаны оценки учащегося по 10 предметам. Определить количество 4 и 5.

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В одномерном массиве содержатся только два одинаковых элемента. Найдите их. можно как то сделать что бы элементов было не 5 как в...

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
Задан массив из 20 натуральных чисел. Найти последовательность из 5-ти элементов, сумма которых максимальна.

Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям - C++
В одномерном массиве содержатся только два одинаковых элемента. Найдите их.

В заданной матрице найти суммы элементов, удовлетворяющих условию - C++
Дана действительная квадратная матрица порядка . Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного...

В заданной матрице найти суммы элементов строк, удовлетворяющих условию - C++
например есть матрица 2 4 5 4 5 3 8 4 6 6 4 6 1 1 1 2 5 9 9 9 3 4 3 3 1 и если строка начинается с...

3
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.01.2014, 17:00 #2
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;
}
1
VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
13.01.2014, 17:28 #3
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
52
#include<iostream>
#include<ctime>
 
using namespace std;
int main()
{
    setlocale(0, "");
    srand(time(NULL));
 
    size_t size;
    cout << "Введите размер: ";
    cin >> size;
 
    int *array = new int [size];
    for(size_t i = 0; i < size; i++)
    {
        array[i] = rand() % 15;
        cout << array[i] << " ";
    }
    cout << endl;
 
    int sum_1 = 0, sum_2 = 0, sum_3 = 0;
    int number, a, b;
 
    cout << "Введите число: ";
    cin >> number;
 
    cout << "Введите а: ";
    cin >> a;
 
    cout << "Введите b: ";
    cin >> b;
 
    for(size_t i = 0; i < size; i++)
    {
        if(i % 2 == 0)
            sum_1 += array[i];
        if(array[i] % number == 0)
            sum_2 += array[i];
        if((array[i] % a == 0) || (array[i] % b == 0))
            sum_3 += array[i];
    }
    
    cout << "Сумма нечетных элементов: " << sum_1 << endl;
    cout << "Сумма кратных числу: " << sum_2 << endl;
    cout << "Сумма кратных а или b: " << sum_3 << endl;
 
    delete [] array;
 
    system("pause");
    return 0;
}
0
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.01.2014, 18:23 #4
Ну, и для разнообразия:
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
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <iterator>
#include <array>
#include <algorithm>
#include <functional>
 
template<typename InputIt, typename T,
         typename UnaryPredicate,
         typename BinaryOperation = std::plus<typename std::iterator_traits<InputIt>::value_type> >
T accumulate_if(InputIt first, InputIt last, T init, UnaryPredicate p,
             BinaryOperation op = std::plus<typename std::iterator_traits<InputIt>::value_type>())
{
   for (; first != last; ++first) {
      if (p(*first))
         init = op(init, *first);
   }
   return init;
}
 
namespace pl = std::placeholders;
 
template <typename T>
struct is_even
{
   bool value = true;
   bool operator ()(const T&)
   {
      value ? value = false : value = true;
      return value;
   }
};
 
template <typename T>
bool is_multiple(const T& lhs, const T& rhs)
{
   return (lhs % rhs) ? false : true;
};
 
int main()
{
   std::array<int, 7> ar {30,2,7,6,8,5,15};
 
   //а) сумму нечетных элементов;
   std::cout << accumulate_if(ar.begin(), ar.end(), 0u,
                              std::bind(std::logical_not<bool>(),
                              std::bind(is_even<int>(), pl::_1))
                              ) << "\n";
   //б) сумму элементов, кратных заданному числу;
   const int multiple = 2;
   std::cout << accumulate_if(ar.begin(), ar.end(), 0u,
                              std::bind(std::equal_to<bool>(),
                              std::bind(std::modulus<int>(), pl::_1, multiple), 0)
                              ) << "\n";
   //в) сумму элементов массива, кратных а или b.
   const int a = 3, b = 5;
   std::cout << accumulate_if(ar.begin(), ar.end(), 0u,
                              std::bind<bool>(std::logical_and<bool>(),
                              std::bind(is_multiple<int>, pl::_1, a),
                              std::bind(is_multiple<int>, pl::_1, b))
                              ) << "\n";
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 18:23
Привет! Вот еще темы с ответами:

Найти произведение элементов массива с чётными номерами и количество элементов, удовлетворяющих условию - C++
Добрый день,я создал код по условию задачи: 3. В одномерном массиве С, состоящем из N вещественных элементов, вычислить: a)...

Найти произведение отрицательных элементов массива и сумму положительных элементов, удовлетворяющих условию - C++
Добрый вечер, не могли вы помочь с решением вот этих двух задач ? Задача 1. В одномерном массиве, состоящем из n вещественных...

Найти произведение элементов массива, удовлетворяющих условию - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) произведение элементов, не равных нулю; б) произведение...

Найти количество элементов массива, удовлетворяющих условию 1<b[i]<m - C++
В массиве b(25), сформированном случайным образом, найти количество элементов, удовлетворяющих условию 1&lt;b&lt;m, где 1 и m - заданные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
13.01.2014, 18:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru