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

Дан массив ,Вычислить произведение элементов массива - C++

Восстановить пароль Регистрация
 
Deffelis
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 28
19.06.2016, 12:57     Дан массив ,Вычислить произведение элементов массива #1
Дан массив x=(12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014) і а=3.14, b= -7.8.
Вычислить произведение элементов массива и напечатать номера элементов массива , не равных нулю и больших а.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 12:57     Дан массив ,Вычислить произведение элементов массива
Посмотрите здесь:

C++ Дан двухмерный массив.Выямнить является ли произведение элементов заданного столбца массива трехзначным числом
C++ Дан двумерный массив, вычислить произведение отрицательных элементов, заменить этим числом элементы второй строки матрицы
C++ Дан целочисленный массив размера N. Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами. зарание благодарен
C++ Дан массив размером 4x4. Вычислить количества элементов массива, равных 0 "
C++ В одномерном массиве, вычислить: а) количество элементов массива б) произведение элементов массива в) От - к +
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nstwf
86 / 76 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
19.06.2016, 13:05     Дан массив ,Вычислить произведение элементов массива #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
24
25
26
27
28
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    double x[15] = { 12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014 };
    double a = 3.14, b = -7.8;
    double proiz = 1;
    for (int i = 0; i < 15; i++)
    {
        cout << x[i] << " ";
        proiz *= x[i];
    }
    cout << endl;
    for (int i = 0; i < 15; i++)
    {
        if ((x[i] != 0) && (x[i] > a))
        {
            cout << i << endl;
        }
    }
    cout << "Произведение = " << proiz << endl;
    system("pause");
}
Notea
0 / 0 / 0
Регистрация: 15.09.2014
Сообщений: 6
19.06.2016, 13:07     Дан массив ,Вычислить произведение элементов массива #3
b - так и не понял зачем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main(){
 float x[15] = { 12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014 };
 float scope = 1, a = 3.14;
 for(int i = 0; i < 15; i++){
  scope = scope * x[i] + 1;
 }
 cout << "Произведение элементов массива = " << scope << "\n";
 for(int i = 0; i < 15; i++){
  if(x[i] != 0 && x[i] > a){
   cout << "Номер элемента массива, который не равен нулю и больше a: " << i << "\n";
  }
 }
 cin.get();
 return 0;
 }
Как-то так.
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 428
19.06.2016, 13:13     Дан массив ,Вычислить произведение элементов массива #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
    std::vector<float> numbs {12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014};
    std::cout << "Result: " << std::accumulate(numbs.begin(), numbs.end(), 1.0, std::multiplies<float>()) << std:: endl;
    auto a = 3.14;
    std:: cout << "Indexes: " << std::endl;
    for (auto i = 0; i < numbs.size(); ++i)
    {
        if (numbs[i] != 0 || numbs[i] > a )
            std::cout << i << " " << std::endl;
    }
    std::cout << std:: endl;
    return 0;
}
Notea
0 / 0 / 0
Регистрация: 15.09.2014
Сообщений: 6
19.06.2016, 13:21     Дан массив ,Вычислить произведение элементов массива #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main(){
 float x[15] = { 12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014 };
 float scope = 1, a = 3.14;
 for(int i = 0; i < 15; i++){
  scope = scope * x[i] + 1;
 }
 cout << "Произведение элементов массива = " << scope << "\n";
 for(int i = 0; i < 15; i++){
  if(x[i] != 0 && x[i] > a){
   cout << "Номер элемента массива, который не равен нулю и больше a: " << i << "\n";
  }
 }
 cin.get();
 return 0;
 }
Однерка в "scope = scope * x[i] + 1;" вроде как не нужна, не могу проверить сам, поэтому пробуйте.
nstwf
86 / 76 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
19.06.2016, 13:23     Дан массив ,Вычислить произведение элементов массива #6
C++
1
scope = scope * x[i]
ну или проще
C++
1
scope*=x[i]
Yandex
Объявления
19.06.2016, 13:23     Дан массив ,Вычислить произведение элементов массива
Ответ Создать тему
Опции темы

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