0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 17
1

Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами

13.09.2017, 16:22. Показов 3791. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день форумчане! Прощу помощи, задача такова:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) Сумму положительных элементов массива;
2) Произведение элементов массива, расположенных между максимальным по модулю и
минимальным по модулю элементами.
3) Упорядочить элементы массива по убыванию.
1 и 3 пункты я выполнил, а 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
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <clocale>
#include <iomanip>
#include <ctime>
#include <cmath> 
 
using namespace std;
 
// Функция заполняет массив a целыми случайными числами от 0 до n
void randomArray(int* a, int n)
{
    srand(time(NULL));
    for (int i = 0; i < n; i++)
        a[i] =  rand() % n - 5;
    return;
}
 
// Функция выводит на консоль линейный массив a
void printArray(int* a, int n)
{
    for (int i = 0; i < n; i++)
        cout << setw(4) << a[i];
    cout << endl;
    return;
}
 
// Функция вычисляет сумму положительных элементов массива
int summArray(int* a, int n)
{
    int summ = 0; // хранит сумму 
    for (int i = 0; i < n; i++) 
        if (a[i]>0) summ += a[i];
    return summ;
}
 
// Функция вычисляет произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
int absArray(int* a, int n)
{
 
} 
 
//Сортировка элементов массива по убыванию
void sortArray(int*a, int n)
{
    for (int i=0; i<n; i++) //сортировка массива по убыванию
    {
        for (int j=i; j<n; j++)
        {
            if (a[i]<a[j])
            {
                int temp = a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
}
 
   
 
 
 
int main(int agrc, const char * argv[]) {
    setlocale(LC_CTYPE, "rus");
    int n;
    cout << "Введите кол-во элементов массива n = ";
    cin >> n;
    int* a = new int[n+1];
 
    randomArray(a, n);
 
    cout << "Исходный массив: ";
    printArray(a, n);
 
    if(summArray(a,n)==0)
        cout << "В массиве нет положительных элементов \n ";
    else
        cout << "Сумма положительных элементов массива = " << summArray(a,n) <<endl;
   
   sortArray(a,n);
   cout << "Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами" << sortArray(a,n) << endl;
 
    
    
    sortArray(a,n);
    cout << "Отсортированный массив: ";
    printArray(a, n);
 
 
    system ("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2017, 16:22
Ответы с готовыми решениями:

Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Всем привет,помогите люди добрые нужно найти:Произведение элементов массива, расположенных между...

Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Всем привет, есть массив заполненный рандомными числами, нужно найти произведение элементов...

Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Определить массив A (m и n константы), заполнить его случайными числами и выполнить следующие...

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

2
Заблокирован
13.09.2017, 16:45 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int MinMax(int*a, int n)
{
  int min,max;
  min=max=0;
  for(int i=1; i<n; i++)
  {
    if(abs(a[min])>abs(a[i])) min=i;
    if(abs(a[max])<abs(a[i])) max=i;
  }
  int mul=0;
  int di=min<max?1:-1;
  for(int i=min+di; i!=max; i+=di)
   if(!mul) mul=a[i];
   else mul*=a[i];
  return mul;
}
как то так, не проверял
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
13.09.2017, 22:03 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <numeric>
#include <iostream>
 
int main()
{
    std::vector <int> vec { -10, 2, 3, 8, 5, 0, -2, 3 };
    auto v = std::minmax_element(vec.cbegin(), vec.cend(), []( const auto x,  const auto y)
    { return std::abs(x) < std::abs(y); });
    if (v.second < v.first) std::swap(v.first, v.second);
    std::cout << std::accumulate(std::next(v.first), v.second, 1, std::multiplies<int>());
    std::cout << std::endl;
    system("pause");
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2017, 22:03
Помогаю со студенческими работами здесь

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

Одномерный массив ( вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами)
Необходимо вычислить произведение элементов массива, расположенных между максимальным по модулю и...

Найти произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами
В одномерном массиве, состоящем из N вещественных элементов, вычислить: произведение элементов...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru