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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать нахождение среднего арифметического элементов массива http://www.cyberforum.ru/cpp-beginners/thread1072018.html
Решите пожалуйста задачу на С++ Разработайте программу, в которой реализовано нахождение среднего арифметического всех, только положительных, только отрицательных элементов одномерного массива, размерность которого определяется пользователем.
C++ Пирамида не строится до конца (пирамидальная сортировка) Строю пирамиду на основе задачи, взятой из инета, выполняется 5 шагов, как и в примере, а дальше цикл заканчивается, а надо еще проверить правильно ли размещены дети для новых вершин, подскажите, в чем косяк? Ниже привожу код программы, а затем ход решения так как должно работать, но не работает :(. Пример: Построим пирамиду для последовательности x = . Делим пополам: 22, 100, 44, 15, 2 |... http://www.cyberforum.ru/cpp-beginners/thread1072001.html
Удаление узла из бинарного дерева C++
Здравствуйте, не могу понять алгоритм замены в данной задаче: Напишите алгоритм и программу для удаления узла из бинарного дерева, которые будет заменять этот узел на его предка в симметричном порядке, а не на его преемника в симметричном порядке. Вот для примера дерево, допустим удаляется 5-узел, судя по всему его надо заменить на 2-й, но как это сделать, не могу разобраться, поясните...
C++ Ошибка в выделении памяти
проблема с выделением памяти. ошибку никак найти не могу, поможет кто исправить? #include <iostream> #include <stdlib.h> using namespace std; template <class T> class Queue { public:
C++ Файловый ввод http://www.cyberforum.ru/cpp-beginners/thread1071984.html
Помогите пожалуйста решить задачу. Ввод из текстового файла "file1"(нужно самому создать этот файл) 1. -количество строк матрицы -количество столбцов матрицы -значения элементов матрицы(int) 2. определить номер столбцов матрицы,содержащие отрицательные элементы. 3. вывод результатов выполнения пункта 2 на экран 4. вывод результата выполнения пункта 2 в текстовый файл "file4" (его...
C++ Прочитать данные из файла Доброго времени суток! Помогите написать программку для чтения данных из файла, а то никак не получается. Есть файл, в первой строке которого я знаю, что написано. В матлабе всё отлично считывается, а повторить на С++ не получается. В первой строке подряд записаны следующие переменные: char long long char long long. Результат должен быть следующий: GIDR 2 344 test ta 10 2 Файл прилагаю. ... подробнее

Показать сообщение отдельно
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
15.01.2014, 14:13     Вычисление произведения пяти наибольших по модулю элементов одномерного массива
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;
}
 
Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru