1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
1

Определить количество элементов массива, которые кратны заданному целому числу m

09.06.2018, 10:23. Показов 1123. Ответов 1
Метки нет (Все метки)

Задан одномерный массив с n целых элементов Определить количество элементов
этого массива, которые кратны заданному целому числу m

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 <algorithm>
 
int main()
{
    const std::size_t n = 10;
    int arr[n] = {1,5,7,5,6,3,4,2,6,2};
    const int m = 4;
    std::for_each(std::begin(arr), std::end(arr), [](int x){ std::cout << x << " ";});
    std::cout << std::endl << "m=" << m << std::endl;
    std::size_t count = std::count_if(std::begin(arr), std::end(arr), [m](int x) {return x<=m;});
    std::cout << std::endl << "Count=" << count << std::endl;
    if(count>0)
    {
        int product = std::accumulate(std::begin(arr), std::end(arr), 1, [m](int p, int x){return p *= (x<=m)?x:1;});
        std::cout << "Product=" << product << std::endl;
        int sum = std::accumulate(std::begin(arr), std::end(arr), 0, [m](int s, int x){return s += (x<=m)?x:0;});
        std::cout << "Sum=" << sum << std::endl;
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2018, 10:23
Ответы с готовыми решениями:

Найти среднее арифметическое элементов массива, которые кратны заданному числу и определить количество элемент
-------------------------------- Индекс 1 2 3 4 5 6 Элемент -10 15 -4 20 1 8 ...

Определить количество элементов двумерного массива, значения которых не кратны заданному числу F
ПОМОГИТЕ ПОЖАААЛУЙСТА!, В этом вообще ничего не понимаю. Подскажите хотя бы с чего начать. ...

Дан массив из N элементов. Определить произведение тех элементов, которые кратны заданному числу Р.
Дан массив из N элементов. Определить произведение тех элементов, которые кратны заданному числу Р....

Определить количество элементов, значения которых кратны заданному числу M
в Visual Basic 6.0 Дан одномерный массив из N элементов: а)Определить количество элементов,...

1
1850 / 1073 / 681
Регистрация: 25.04.2016
Сообщений: 3,020
10.06.2018, 01:38 2
с++ где-то там..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <numeric>
using namespace std;
int main (void)
{
    const size_t n = 10;                    // размер массива
    const int m = 4;                        // заданное число m
    int arr[n] = {1,5,7,5,6,3,4,2,6,2};     // массив
    for_each(begin(arr), end(arr), [](int x){ cout << x << " ";});      // массив на экран
    cout << endl << "m = " << m << endl << endl;                        // m на экран
    int count = count_if(begin(arr), end(arr), [m](int x) {return x<=m;});  // количество элементов <= m
    cout << "Count = " << count << endl;
    if(!count) return 0;
    int product = accumulate(begin(arr), end(arr), 1, [m](int p, int x){return p *= (x<=m)?x:1;});  // произведение элементов <= m
    int sum = accumulate(begin(arr), end(arr), 0, [m](int s, int x){return s += (x<=m)?x:0;});      // сумма элементов <= m
    int krat = count_if(begin(arr), end(arr), [m](int x) {return x && !(x%m);});                    // количество элементов кратных m
    cout << "Product = " << product << endl;
    cout << "Sum = " << sum << endl;
    cout << "Krat = " << krat << endl;
    return 0;
}
или:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <numeric>
using namespace std;
int main (void)
{
    const size_t n = 10;                    // размер массива
    const int m = 4;                        // заданное число m
    int arr[n] = {1,5,7,5,6,3,4,2,6,2};     // массив
    for_each(begin(arr), end(arr), [](int x){ cout << x << " ";});      // массив на экран
    cout << endl << "m = " << m << endl << endl;                        // m на экран
    int count = count_if(begin(arr), end(arr), [m](int x) {return x<=m;});  // количество элементов <= m
    cout << "Count = " << count << endl;
    if(count == 0) return 0;
    int product = accumulate(begin(arr), end(arr), 1, [m](int p, int x){return p *= (x<=m)?x:1;});      // произведение элементов <= m
    int sum = accumulate(begin(arr), end(arr), 0, [m](int s, int x){return s += (x<=m)?x:0;});          // сумма элементов <= m
    int krat = accumulate(begin(arr), end(arr), 0, [m](int k, int x){return k += (x && !(x%m))?1:0;});  // количество элементов кратных m
    cout << "Product = " << product << endl;
    cout << "Sum = " << sum << endl;
    cout << "Krat = " << krat << endl;
    return 0;
}
минус этих программ в том, что вы 5 раз запускаете по сути один и тот же цикл. Без всяких лямбд будет чуть побольше кода, зато инклудов будет меньше (а значит и размер бинарника будет меньше), да и работать будет быстрее:
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
#include <iostream>
using namespace std;
int main (void)
{
    const size_t n = 10;                // размер массива
    int i, c=0, p=1, s=0, k=0, m=4;     // переменные-счетчики, заданное число m
    int a[n] = {1,5,7,5,6,3,4,2,6,2};   // элементы массива
    for (i=0; i<n; i++)
    {
        cout << a[i] << " ";            // выводим массив на экран
        if (a[i] <= m)
        {
            c++;            // количество элементов массива <= m
            p *= a[i];      // произведение элементов <= m
            s += a[i];      // сумма элементов <= m
        }
        if (a[i] != 0 && a[i]%m == 0) k++;  // количество кратных m
    }
    cout << endl << "m = " << m << endl << endl;    // заданное число на экран
    cout << "Count = " << c << endl;        // количество элементов <= m
    if (c == 0) return 0;
    cout << "Product = " << p << endl;      // произведение элементов <= m
    cout << "Sum = " << s << endl;          // сумма элементов <= m
    cout << "Krat = " << k << endl;         // количество элементов кратных m
    return 0;
}
а главное, прочитать код и понять логику программы куда проще.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2018, 01:38
Помогаю со студенческими работами здесь

Удалить те элементы массива, которые кратны заданному числу k
Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу k.

Удалить те элементы массива, которые кратны заданному числу k
1)Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу...

Перевод с С# на С++. Найти сумму элементов массива равную заданному целому числу
Ребят задание такое, написать алгоритм нахождения суммы элементов массива равной заданному целому...

Найти количество элементов массива,которые меньше либо равняются заданному числу
Задан массив a(n).Найти количество элементов массива,которые либо равняются заданному числу m,либо...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru