Форум программистов, компьютерный форум 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)Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси.... подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
06.01.2011, 18:45     Найти разность между произведением нечетных чисел и наибольшим среди отрицательных
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
71
72
73
/*
Вводится последовательность из N целых чисел, найти разность между
произведением нечетных чисел и наибольшим среди отрицательных.
*/
 
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <clocale>
 
int main(){
    int * arr, size;
 
    // Русский текст в консоли. Нормально работает только в MSVS
    setlocale(LC_ALL, "Russian");
 
    std::cout << "Количество элементов: ";
    std::cin >> size;
    arr = new int[size];
 
    // Заполнение только-что созданного массива случайными числами от -99 до 99,
    // а за одно и вывод его на экран.
    // Оно, конечно, не по заданию, но вводить N чисел скучно...
    srand(time(NULL));
    std::cout << "Массив:" << std::endl;
    for ( int i = 0; i < size; ++i )
        std::cout << std::right << std::setw(4) << ( arr[i] = rand() % 199 - 99 );
    std::cout << std::endl;
 
    // Поиск максимального отрицательного элемента в массиве.
    int * pMaxNegative = 0;
    for ( int i = 0; i < size; ++i )
        if ( arr[i] < 0 )
            if ( ! pMaxNegative || *pMaxNegative < arr[i] )
                pMaxNegative = &arr[i];
 
    // Если нет отрицательных элементов, можно не продолжать.
    if ( ! pMaxNegative ){
        std::cerr << "В массиве нет отрицательных элементов." << std::endl;
        delete [] arr;
        return 1;
    }
 
    // Произведение нечётных чисел. В принципе может быть как положительным, 
    // так и отрицательным числом.
    // тип данных __int64 - тоже характерная особенность MSVS
    // в других компиляторах можно использовать int64_t из stdint.h или надеяться,
    // что типа int хватит для произведения нечётных чисел.
    __int64 nOddProduct = 0;
    for ( int i = 0; i < size; ++i ){
        if ( arr[i] & 1 ){
            if ( ! nOddProduct )
                nOddProduct = arr[i];
            else
                nOddProduct *= arr[i];
        }
    }
    // Если нет нечётных чисел, снова можно не продолжать...
    if ( ! nOddProduct ){
        std::cerr << "В массиве нет элементов с нечётными значениями." << std::endl;
        delete [] arr;
        return 1;
    }
 
    std::cout << "Разность между произведением нечетных чисел и наибольшим среди отрицательных:" <<std::endl;
    std::cout << nOddProduct << " - " << *pMaxNegative << " = " << ( nOddProduct - *pMaxNegative ) << std::endl;
 
    delete [] arr;
    system("pause");
 
    return 0;
}
Найти разность между произведением нечетных чисел и наибольшим среди отрицательных
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru