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

Найти произведение элементов массива, расположенных после минимального элемента - C++

Восстановить пароль Регистрация
 
desnet
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 6
12.11.2013, 12:47     Найти произведение элементов массива, расположенных после минимального элемента #1
Написать и отладить программу создания одномерного массива из 30 случайных целочисленных элементов, которые принадлежат интервалу [-50; 50]. Найти произведение элементов массива, расположенных после минимального элемента. Помогите сделать последнее задание. Нужно продолжить программу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//lab1
#include <iostream.h>
#include <stdlib.h>
void main (void)
{randomize();
int pr,i,f;
float M[30],min;
min=31;
for (i=0;i<=29;i++)
{M[i]=random(50)-random(50);}
for (i=0;i<=29;i++)
{cout<<" "<<M[i];}
for (i=0;i<=14;i++)
{if ((M[i])<min) min=(M[i]);}
cout<<"\n min="<<min;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 12:47     Найти произведение элементов массива, расположенных после минимального элемента
Посмотрите здесь:

C++ Сумма элементов массива, расположенных после минимального элемента
найти количество элементов массива, расположенных после минимального элемента C++
C++ Найти сумму модулей элементов массива, расположенных после минимального по модулю элемента
C++ 1. Дан одномерный массив целых чисел. Найти произведение элементов массива, расположенных после минимального по модулю элемента
C++ Найти сумму модулей элементов массива, расположенных после минимального по модулю элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 13:35     Найти произведение элементов массива, расположенных после минимального элемента #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
29
    int pr,i,f;
    float M[5], min;
    min=51;
    int it = 0;
    for (i=0; i<5; i++)
    {
        M[i]=random(50)-random(50);
    }
    for (i=0; i < 5; i++)
    {
        cout<<" "<<M[i];
    }
    for (i=0; i < 5; i++)
    {
        if ((M[i])<min)
        {
            min=(M[i]);
            it = i+1;
        }
    }
    cout<<"\n min="<<min;
 
    double mul = 1;
    for (int i = it; i < 5; i++)
    {
        mul *= M[i];
    }
 
    cout << "\n Mul: " << mul << endl;
Сделал 5 элементов вместо 30, чтобы проверять было легче.
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
12.11.2013, 13:42     Найти произведение элементов массива, расположенных после минимального элемента #3
Код для Microsoft Visual C++ 2010 Express
Заголовочный файл stdafx.h
C++
1
2
3
4
5
6
7
8
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <ctime>
Программа
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
#include "stdafx.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
    srand((unsigned)time(NULL));
    setlocale(LC_ALL, "Russian");
    
    const int n = 30;
    int arr[n];
    
    cout << "Исходный массив:\n";
    for (int i = 0; i < n; ++i)
    {
        arr[i] = rand()%101-50;
        cout << arr[i] << " ";
    }
    cout << "\n";
 
    int min = arr[0];
    int minPos = 0;
 
    for (int i = 0; i < n; ++i)
    {
        if(min < arr[i]) continue;
        min = arr[i];
        minPos = i;
    }
 
    cout << "Минимальный элемент min = " << min << "\n";
    cout << "Позиция минимального элемента minPos = " << minPos << "\n";
 
    if (minPos != (n - 1))
    {
        double product = 1;
        for (int i = minPos + 1; i < n; ++i)
        {
            product *= arr[i];
        }
        cout << "product = " << product << "\n";
    }
    else 
    {
        cout << "Минимальный элемент массива расположен на последней позиции\n";
    }
 
    system("PAUSE");
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
12.11.2013, 13:47     Найти произведение элементов массива, расположенных после минимального элемента #4
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
#include <numeric>
#include <iterator>
#include <functional>
 
int main()
{
   const size_t elements = 10;
   std::mt19937 gen = std::mt19937(std::random_device()());
   std::uniform_int_distribution<> dist(-50, 50);
   std::vector<int> vec(elements);
   std::generate(std::begin(vec), std::end(vec), [&]() { return dist(gen); });
   auto output = [](const std::string& message, const std::vector<int>& v) -> void
   {
      std::cout << message << ": ";
      std::copy(std::begin(v), std::end(v), std::ostream_iterator<int>(std::cout, " "));
      std::cout << std::endl;
   };
   output("generated", vec);
   auto next_min = std::next(std::min_element(std::begin(vec), std::end(vec)));
   if (next_min != vec.end())
   {
      std::cout << "multiply is: " <<
      std::accumulate(next_min, std::end(vec), 1, std::multiplies<int>())
      << std::endl;
   }
   else
   {
      std::cout << "min element is last in array" << std::endl;
   }
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 13:54     Найти произведение элементов массива, расположенных после минимального элемента #5
ForEveR,

Не по теме:

каждый раз, когда читаю Ваши посты, у меня взрывается мозг. Это печально.

desnet
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 6
12.11.2013, 15:16  [ТС]     Найти произведение элементов массива, расположенных после минимального элемента #6
Всем спасибо, помогли реально!!!
Yandex
Объявления
12.11.2013, 15:16     Найти произведение элементов массива, расположенных после минимального элемента
Ответ Создать тему
Опции темы

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