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

Найти количество элементов массива равных нулю - C++

Восстановить пароль Регистрация
 
слон11
0 / 0 / 0
Регистрация: 25.11.2016
Сообщений: 1
25.11.2016, 17:45     Найти количество элементов массива равных нулю #1
Дан одномерный массив заданный генератором случайных чисел. Найти количество элементов массива, равных 0.А так же, сумму элементов массива, расположеных после минимального элемента.
Проблема с компиляцией в DEV++ не пойму где тут ошибка буду благодарен если исправите и если не трудно напишите комментарий к каждой команде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
using namespace std;
 
int main() {
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(-3,8);
    vector<int> array(20);
    generate(array.begin(), array.end(), [&distribution,&generator](){return distribution(generator);});
    cout << "Массив: ";
    for(auto x:array){
        cout << x << " ";
    }
    cout << endl << "Элементов, равных 0 - " << count_if(array.begin(), array.end(), [](auto x){return x==0;});
    int sum = 0;
    for_each(min_element(array.begin(), array.end()),array.end(),[&sum](int x){sum+=x;});
    cout << endl << "Сумма после минимума - " << sum;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2016, 17:45     Найти количество элементов массива равных нулю
Посмотрите здесь:

C++ Вычислить количество элементов массива, равных нулю
Определите количество элементов массива равных нулю. C++
Определите количество элементов массива равных нулю C++
C++ В заданной матрице найти количество элементов равных нулю
C++ решение двумерных массивов (Вычислить сумму элементов не равных нулю и посчитать их количество, найти номера столбцов с положительными элементами)
C++ В заданных массивах найти количество элементов равных нулю и заменить их на -100 в случае выполнения условия
C++ Найти количество положительных, отрицательных и равных нулю элементов в одномерном вещественно массиве
Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
25.11.2016, 18:11     Найти количество элементов массива равных нулю #2
Цитата Сообщение от слон11 Посмотреть сообщение
Проблема с компиляцией в DEV++
Код не содержит ошибок компиляции: http://rextester.com/IRUI95050 Мб у вас Dev со стареньким компиляторов стоит? Попробуйте Dev-cpp от Orwell http://orwelldevcpp.blogspot.ru
gru74ik
Модератор
 Аватар для gru74ik
3116 / 1342 / 167
Регистрация: 20.02.2013
Сообщений: 3,808
Записей в блоге: 17
25.11.2016, 18:36     Найти количество элементов массива равных нулю #3
слон11, ошибка использовать одновременно директиву using и имена переменных навроде array. Кроме того, для выполнения этого кода необходимо включить поддержку стандарта C++11. Dev++ не самая лучшая среда разработки, если её вообще можно называть таковой. Я бы порекомендовал не мучаться и скачать хотя бы Code::Blocks.

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
62
63
64
65
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution( -3, 8 );
 
    std::vector<int> arr( 20 );
 
    std::generate
        (
            arr.begin(),
            arr.end(),
            [&distribution, &generator]
                ()
            {
                return distribution( generator );
            }
        );
 
    std::cout << "Array: ";
    for( const auto x : arr )
        std::cout
            << x
            << " ";
 
    std::cout
        << "\nElements equal to zero: "
        << std::count_if
            (
                arr.begin(),
                arr.end(),
                []
                    ( auto x )
                {
                    return x == 0;
                }
            );
 
    int sum = 0;
    for_each
        (
            min_element
                (
                    arr.begin(),
                    arr.end()
                ),
            arr.end(),
            [&sum]
                ( int x )
            {
                sum += x;
            }
        );
 
    std::cout
        << "\nSum of elements that are after minimal element is: "
        << sum
        << "\n\n";
 
    return 0;
}
Yandex
Объявления
25.11.2016, 18:36     Найти количество элементов массива равных нулю
Ответ Создать тему
Опции темы

Текущее время: 05:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru