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

Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D - C++

Восстановить пароль Регистрация
 
hakerok115
 Аватар для hakerok115
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 57
13.02.2011, 08:45     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #1
В последовательности действительных чисел есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D.
Сравнить модули P и D, указать, какое из произведений по модулю больше. Вывести на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2011, 08:45     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D
Посмотрите здесь:

C++ Вычислить произведение положительных и отрицательных элементов каждой строки
Вычислить произведение отрицательных элементов и произведение положительных элементов последовательности C++
C++ Вычислить сумму отрицательных, произведение положительных и количество нулевых элементов массива с нечетными индексами.
Вычислить сумму отрицательных элементов массива и произведение элементов, расположенных между максимальным и минимальным элементами C++
массивы. Вычислить произведение отрицательных, сумму положительных элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
13.02.2011, 08:52     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vector>
#include <numeric>
#include <iostream>
#include <iterator>
#include <cmath>
 
int main()
{
    std::vector<double> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    double P=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    {
        return second < 0 ? first * second : first;
    });
    double D=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    { 
       return second > 0 ? first*second : second;
    });
    if(fabs(P) == fabs(D))
       std::cout<<"Both are equal\n";
    else 
       std::cout<<"Greater is: "<< (fabs(P) > fabs(D) ? P : D) <<'\n';
    return 0;
}
hakerok115
 Аватар для hakerok115
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 57
13.02.2011, 08:56  [ТС]     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #3
Ошибок выдаёт 12 штук.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
13.02.2011, 09:03     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #4
Компилятор минимум MSVS 2010 либо GCC 4.5+

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vector>
#include <numeric>
#include <iostream>
#include <iterator>
#include <cmath>
 
int main()
{
    std::vector<double> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    double P=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    {
        return second < 0 ? first * second : first;
    });
    double D=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    { 
       return second > 0 ? first*second : first;
    });
    if(fabs(P) == fabs(D))
       std::cout<<"Both are equal\n";
    else 
       std::cout<<"Greater is: "<< (fabs(P) > fabs(D) ? P : D) <<'\n';
    return 0;
}
hakerok115
 Аватар для hakerok115
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 57
13.02.2011, 09:27  [ТС]     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #5
Цитата Сообщение от ForEveR Посмотреть сообщение
Компилятор минимум MSVS 2010 либо GCC 4.5+

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vector>
#include <numeric>
#include <iostream>
#include <iterator>
#include <cmath>
 
int main()
{
    std::vector<double> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    double P=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    {
        return second < 0 ? first * second : first;
    });
    double D=std::accumulate(vec.begin(), vec.end(), 1.0, [](double first, double second)
    { 
       return second > 0 ? first*second : first;
    });
    if(fabs(P) == fabs(D))
       std::cout<<"Both are equal\n";
    else 
       std::cout<<"Greater is: "<< (fabs(P) > fabs(D) ? P : D) <<'\n';
    return 0;
}
Я компилирую через borland 3.1
Busine2009
Заблокирован
13.02.2011, 10:19     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #6
hakerok115,
а что нужно использовать: массивы или векторы?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.02.2011, 11:02     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D #7
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
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#define size 15
int main()
{
    srand(unsigned(time(NULL)));
    int mas[size];
    int i,p=1,d=1;
    printf("Array ->");
     for(i=0; i<size; i++)
     {
         mas[i]=rand()%10-5;
          printf("%d ",mas[i]);
           if(mas[i]>0) 
           {
               d*=mas[i];
           }
           if(mas[i]<0)
           {
               p*=mas[i];
           }
     }
     if(abs(p)>abs(d)) 
      {
        printf("\n|p|>|d|");
      }
     if(abs(p)<abs(d))
      {
        printf("\n|p|<|d|\n");
      }
     printf("\n|p|=%d",abs(p));
     printf("\n|d|=%d",abs(d));
     getch();
     return 0;
}
silent_1991
13.02.2011, 11:27
  #8

Не по теме:

Цитата Сообщение от hakerok115 Посмотреть сообщение
Я компилирую через borland 3.1
С чем я вас и поздравляю.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 11:48     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D
Еще ссылки по теме:

C++ Среднее арифметическое положительных элементов массива, произведение и кол-во отрицательных элементов
Вычислить произведение количества отрицательных и количества положительных элементов одномерного массива C++
Вычислить произведение положительных и сумму отрицательных элементов каждого столбца двумерного массива C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
13.02.2011, 11:48     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D
  #9

Не по теме:

Я собственно абсолютно согласен с silent_1991... Когда же начинающие научатся пользоваться нормальными компиляторами, а не теми, которые работали под Dos? Ответа на этот вопрос я не прошу... Он риторический. Я итак знаю, что никогда...

Yandex
Объявления
13.02.2011, 11:48     Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D
Ответ Создать тему
Опции темы

Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru