Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Олег_Дранич
1 / 1 / 0
Регистрация: 02.10.2013
Сообщений: 10
#1

Вычисление произведения пяти наибольших по модулю элементов одномерного массива

15.01.2014, 13:09. Просмотров 457. Ответов 5
Метки нет (Все метки)

Помогите плиз решить задачку( Идей вообще ни каких нету(((.
Разработайте программу, в которой реализовано вычисление произведение пяти наибольших по модулю элементов одномерного массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 13:09
Ответы с готовыми решениями:

Определить индексы и значения наибольших и наименьших по модулю элементов одномерного массива
Помогите пожалуйста решить задачу: Используя линейные массивы, определить...

Для одномерного массива найти cуму индексов наибольших элементов
Задание: Для одномерного массива C(n) найти cуму индексов L наибольших...

Для одномерного массива A (n) найти сумму L наибольших элементов, где - 10 <= n <= 45
Для одномерного массива A (n) найти сумму L наибольших элементов, где - 10 &lt;= n...

Найти произведение первых трёх наибольших элементов одномерного массива
Написать программу одномерного массива. Условие: Найти произведение первых...

Шаблон функции для поиска произведения всех элементов одномерного массива
Есть задание: /* Создать функцию-шаблон. Используя эту функцию,...

5
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 31
15.01.2014, 13:32 #2
А что сложного?
Вводите массив, потом, дабы легче было, все отрицательные элементы превращаете в положительные. Сортируете массив от наибольшего к меньшему и умножаете первые пять чисел.
0
Олег_Дранич
1 / 1 / 0
Регистрация: 02.10.2013
Сообщений: 10
15.01.2014, 13:36  [ТС] #3
сложность в том, что это нужно сделать при помощи шаблонов функций
0
korep
52 / 45 / 18
Регистрация: 06.01.2013
Сообщений: 612
15.01.2014, 13:39 #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
int function sum(int array[],int arrayLen){
int max[5];
for(int i=0; i<5;i++) max[i] = -1;
int m;
for(int i = 0; i < 5; i++){
m = 0;
for( j = 1; j < arrayLen; j++){
if((array[m] < array[j])&&incl(max,jq){
max[i] =j;
}
}
}
int res;
for(int i=0; i<5;i++) res +=array[max[i]];
return res;
}
 
bool function incl(int array[], int ch){
bool res = true;
for(int i=0; i<5; i++){
if(array[i] == ch) res = false;
} return res;
}
0
Олег_Дранич
1 / 1 / 0
Регистрация: 02.10.2013
Сообщений: 10
15.01.2014, 13:42  [ТС] #5
korep, это нужно сделать при помощи шаблонов функций
0
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
15.01.2014, 14:13 #6
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
#include <random>
#include <vector>
#include <algorithm>
#include <iostream>
 
int main() {
 
    std::vector<int> nums;
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(-10, 10);
 
    for (int i = 0; i < 10; i++ ) {
        nums.push_back(distribution(generator));
    }
 
    auto sortRule = [](int a, int b) {
        return std::abs(a) > std::abs(b);
    };
    std::sort(nums.begin(), nums.end(), sortRule);
 
    int mult = 1;
    std::for_each(nums.begin(), nums.begin() + 5, [&mult](int a) { mult *= a; });
    std::cout << mult << std::endl;
    return 0;
}
Добавлено через 29 минут
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
#include <random>
#include <vector>
#include <algorithm>
#include <iostream>
#include <allocators>
 
template<typename T, std::size_t N> 
T calculate(T (&nums)[N]) {
    if (N < 5) {
        return 0;
    }
    auto sortRule = [](T a, T b) {
        return std::abs(a) > std::abs(b);
    };
    std::sort(std::begin(nums), std::end(nums), sortRule);
 
    T mult = 1;
    std::for_each(std::begin(nums), std::begin(nums) + 5, [&mult](T a) { mult *= a; });
    return mult;
}
 
int main() {
 
    int nums[10];
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(-10, 10);
 
    for (int i = 0; i < 10; i++ ) {
        nums[i] = (distribution(generator));
    }
 
    int multi = calculate(nums);
    std::cout << multi  << std::endl;
    return 0;
}
1
15.01.2014, 14:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2014, 14:13

Написать программу произведения между максимальным по модулю и минимальным по модулю элементами массива - C++
Написал программу которая выводит максимальный и минимальный массиви: ...

Рекурсия: вычисление произведения элементов массива
Доброго времени суток!!! В С++ полный нуб.... маюсь не первый день с такой...

Рекурсия: вычисление произведения модулей элементов массива
Нужно написать рекурсивную функцию вычисления \prod |{a}_{i}| где {a}_{i} ...


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

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

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