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

Найти разность между произведением нечетных чисел и наибольшим среди отрицательных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как вывести на экран переменную из функции, которой присваиваеться значение через указатель? http://www.cyberforum.ru/cpp-beginners/thread224903.html
Только начал изучать С++. И не могу понять, как вывести на экран переменную pdLocalVar из функции child(), которой присваивается значение в функции parent() через указатель. #include <iostream.h> using namespace std; double* child(void) { double* pdLocalVar=new double; return pdLocalVar; cout<<pdLocalVar<<"\n";
C++ таблица значений Составить таблицу значений следующей функции: y(x)=интеграл от 0 до x (cos(t)dt/t) http://www.cyberforum.ru/cpp-beginners/thread224897.html
C++ Сортировка эл-тов вывода массива
Дана программа подсчёта среднего арифметического всех эл-тов массива: #include <stdio.h> float sr_ar(int N) { int sum=0, n; for(int i=0;i<N;++i) { printf("mas= ", i); scanf("%d", &n);
C++ Массив структур
Создать массив структур. Каждая структура состоит из таких элементов: факультет, курс, группа, фамилия студента, оценка. Созданный массив записать в файл. Определить объем созданного файла. Предусмотреть операции добавления записей в файл и их редактирование. Реализовать запрос, определив: 1) студентов, имеющий 2 и более двойки и исключить их; 2) факультет, который на 1м курсе имеет больше...
C++ Реализация двоичной кучи(пирамиды)!!! http://www.cyberforum.ru/cpp-beginners/thread224863.html
Горит расчетная работа на тему "Пирамиды"(другое название "двоичная куча"). Нужно реализовать эту структуру данных, добавление и удаление элементов, и поиск. Реализация пирамиды в виде массива есть, а со всем остальным проблема. ПОМОГИТЕ ПОЖАЛУЙСТА! #include <stdio.h> const long int MaxV = 5000; long int a;//массив для временного хранения элементов long int n,i;// //Our heap variables...
C++ действие над матрицами(на С) у меня возникли проблемки с матрицами, задачки не сложние, кто хорошо понимает в матрицах, напишите плс 1)Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата. 2)Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси.... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
06.01.2011, 19:18     Найти разность между произведением нечетных чисел и наибольшим среди отрицательных
Длинненько.
Но если не писать собственный алгоритм и некоторых других вещей, то впринципе все будет лучше)
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
66
67
68
69
70
#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>
#include <numeric>
#include <iterator>
 
template<class Iter, class cmp>
Iter max_element_from_neg(Iter begin, Iter end, cmp comp)
{
    if(begin != end)
    {
        Iter found=begin;
        while(++begin != end)
        {
           if(*found > 0)
                found=begin;
           if(*begin < 0 && *found < 0)
           {
               if(comp(*begin, *found))
               {
                   found=begin;
               }
           }
        }
        if(*found < 0)
            return found;
    }
    return end;
}
 
int main()
{
    typedef std::vector<int> T_vec;
    typedef std::vector<int>::iterator T_iter;
    typedef long long value_type;
    typedef std::istream_iterator<int> T_iss;
    typedef std::ostream_iterator<int> T_oss;
   
    T_vec Vec((T_iss(std::cin)), T_iss());
    T_iter it=max_element_from_neg(Vec.begin(), Vec.end(), [](int one, int sec) -> bool
    {
        return one > sec;
    });
    if(it == Vec.end())
    {
        std::cout<<"All elements are positive\n";
        system("pause");
        return 1;
    }
    std::cout<<"Max element is: "<< *it <<'\n';
    value_type mult=1;
    int cnt=0;
    std::for_each(Vec.begin(), Vec.end(), [&mult, &cnt](int elem)
    {
        if(elem % 2 != 0)
        {
            mult*=elem;
            ++cnt;
        }
    });
    if(!cnt)
    {
        std::cout<<"All elements are odd\n";
        system("pause");
        return 1;
    }
    std::cout<<"Result is: "<< mult <<" - "<< *it <<" = "<< mult-*it <<'\n';
    system("pause");
}
 
Текущее время: 18:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru