Форум программистов, компьютерный форум 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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
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