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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Bu3uPb
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3
28.02.2012, 16:07     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами #1
Средствами ООП решить задачу:
Случайным образом вводятся 20 вещественных элементов массива. Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами (включительно). Вывести на печать исходный массив, максимальное значение, массив между ними, среднее арифметическое значение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 16:07     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами
Посмотрите здесь:

C++ Составить программу,которая вычисляет сумму элементов массива, которые расположены между максимальным и минимальным элементами.
C++ Найти сумму элементов массива, расположенных между элементами с минимальным и максимальным значением
Если максимальный элемент находится левее минимального, то найти среднее арифметическое элементов, находящихся между максимальным и минимальным. C++
Найти сумму элементов массива между максимальным и минимальным элементами C++
C++ 2. В одномерном массиве найти среднее арифметическое для элементов, расположенных между максимальным и минимальным
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
28.02.2012, 20:23     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами #2
Как-то слабо себе представляю, каким образом здесь можно применить ООП...
Bu3uPb
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3
01.03.2012, 19:38  [ТС]     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами #3
Цитата Сообщение от rangerx Посмотреть сообщение
Как-то слабо себе представляю, каким образом здесь можно применить ООП...
единственная задача осталась по зачёту=) а то в должниках не охота сидеть =(, хотябы примерное решение.
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
01.03.2012, 20:29     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами #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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <cmath>
 
using namespace std;
 
class Array
{
private:
    double* arr;
    int size;
public:
    //конструктор массива с нулевыми значениями
    Array(int newSize);
    //деструктор
    ~Array();
 
    //получить элемент по индексу
    double getElement(int index);
 
    //метод заполняющий массив случайными числами на интервале [а, b] с заданной точностью
    void fillRandomly(int a, int b, double eps);
    
    //метод показывающий массив
    void showArray();
 
    //метод находит индексы максимального и минимального элемента массива
    int indexOfMin();
    int indexOfMax();
 
    //метод находит среднее значение между максимальным и минимальным элементами
    double average();
};
 
Array::Array(int newSize)
{
    size = newSize;
    arr = new double [size];
    for (int i = 0; i < size; i++)
    {
        arr[i] = 0;
    }
}
 
Array::~Array()
{
    if(arr)
    {
        delete [] arr;
    }
}
 
double Array::getElement(int index)
{
    return arr[index];
}
 
void Array::fillRandomly(int a, int b, double eps)
{
    srand(time(NULL));
    for (int i = 0; i < size; i++)
    {
        arr[i] = eps * (a + rand() % ((b - a + 1) * (int)(1 / eps)));
    }
}
 
void Array::showArray()
{
    for (int i = 0; i < size; i++)
    {
        cout << arr[i] << "  ";
    }
}
 
int Array::indexOfMin()
{
    int min = 0;
    for (int i = 0; i < size; i++)
    {
        if (arr[min] > arr[i])
        {
            min = i;
        }
    }
    return min;
}
int Array::indexOfMax()
{
    int max = 0;
    for (int i = 0; i < size; i++)
    {
        if (arr[max] < arr[i])
        {
            max = i;
        }
    }
    return max;
}
 
double Array::average()
{
    double average = 0;
    for (int i = (indexOfMax() > indexOfMin() ? indexOfMin() : indexOfMax()); i <= (indexOfMin() > indexOfMax() ? indexOfMin() : indexOfMax()); i++)
    {
        average += arr[i];
    }
    return average / (1 + abs(indexOfMax() - indexOfMin()));
}
 
int main()
{
    Array a(10);
    a.fillRandomly(1, 10, 0.1);
    cout << "Array:";
    a.showArray();
    cout << '\n' << "Maximum element:" << a.getElement(a.indexOfMax()) << '\n';
    cout << "Array between maximum and minimum elements:";
    for (int i = (a.indexOfMax() > a.indexOfMin() ? a.indexOfMin() : a.indexOfMax()); i <= (a.indexOfMin() > a.indexOfMax() ? a.indexOfMin() : a.indexOfMax()); i++)
    {
        cout << a.getElement(i) << "  ";
    }
 
    cout << '\n' << "Average of elements between maximum and minimum:" << a.average() << '\n';
 
    return 0;
}
Надеюсь, что подойдет. Будут вопросы пиши.
Bu3uPb
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3
02.03.2012, 07:45  [ТС]     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами #5
спасибо вам(скоро узнаю подойдет или нет) =)
Yandex
Объявления
02.03.2012, 07:45     Найти среднее арифметическое тех элементов, которые расположены между максимальным и минимальным элементами
Ответ Создать тему
Опции темы

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