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

Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива

05.05.2014, 19:06. Показов 6248. Ответов 15
Метки нет (Все метки)

Написать программу, которая вычисляет среднее арифметическое элементов массива без учета минимального и максимального элементов массива.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2014, 19:06
Ответы с готовыми решениями:

Среднее арифметическое элементов массива без учета минимального и максимального элементов
Написать программу, которая вычисляет среднее арифметическое элементов массива без учета...

Найти среднее арифметическое элементов массива без учета минимального и максимального элементов
Написать программу, которая вычисляет среднее арифметическое элементов массива без учета...

Найти среднее арифметическое элементов массива без учёта максимального и минимального элементов
Нужно найти среднее арифметическое элементов массива без учёта максимального и минимального...

Вычислите среднее арифметическое элементов последовательности без учета минимального и максимального
Дана последовательность из n целых чисел (n<=200). Вычислите среднее арифметическое элементов...

15
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
05.05.2014, 20:01 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
using namespace std;
 
int main() 
{   
    const int size = 5;
    int array[size] = { 1,2,3,4,5}; 
    int i; 
    int summa = 0; 
 
    for ( i = 0; i < size; i++) 
        summa += array[i]; 
    cout << "Average " << summa / size << endl;
    
    system("pause");
    return 0;
}
1
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:13 3
mster-doc, твоя программа :
1. не выполняет то что просил тс, а именно среднее арифметическое без учета максимального и минимального элементов
2. даже просто среднее арифметическое будет посчитано неверно, так как в результате всегда будет целое значение, а разве не может быть действительное?
1
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.05.2014, 20:30 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
#include <functional>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <array>
 
int main()
{
    const size_t arraySize = 5;
    std::array <int, arraySize> array;
    
    std::cout << "Input " << arraySize << " elements: " << std::endl;
    for (auto &iterator : array) {
        std::cin >> iterator;
    }
 
    auto minimal_maximal = std::minmax_element(array.begin(), array.end());
    double average = std::accumulate(array.begin(), array.end(), 0.0, [minimal_maximal](double tempSum, int currentElement) -> double {
        tempSum += (currentElement != *minimal_maximal.first) && (currentElement != *minimal_maximal.second) ? currentElement : 0;
        return tempSum;
    });
    std::cout << "Average: " << (average /= (arraySize - 2)) << std::endl;
 
    std::system("pause");
    return 0;
}
1
54 / 54 / 41
Регистрация: 20.12.2012
Сообщений: 256
05.05.2014, 20:38 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
24
25
26
#include <iostream>
 
using namespace std;
 
int main()
{
    double *arr, summ = 0.0;
    int num = 0;
    cout << "Vvedite colichestvo chisel: ";
    cin >> num;
    arr = new double[num];
 
    for(int i = 1; i <= num; i++){
        cout << "arr[" << i << "] = ";
        cin >> arr[i-1];
    }
 
    for(int i = 1; i <= num; i++){
        summ += arr[i-1];
    }
    
    cout << "sred. aryf. = " << summ / num << endl;
 
    system("PAUSE << void");
    return 0;
}
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:39 6
Цитата Сообщение от ViktorNMax Посмотреть сообщение
C++
1
2
3
for(int i = 1; i <= num; i++){
     summ += arr[i-1];
   }
циклы с 0 для лохов)
0
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
05.05.2014, 20:40 7
ViktorNMax,
Цитата Сообщение от cooller Посмотреть сообщение
твоя программа :
1. не выполняет то что просил тс, а именно среднее арифметическое без учета максимального и минимального элементов
и от себя добавлю, возьмите в привычку освобождать память после оператора new
1
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:43 8
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
и от себя добавлю, возьмите в привычку освобождать память после оператора new
или использовать вектор)
0
54 / 54 / 41
Регистрация: 20.12.2012
Сообщений: 256
05.05.2014, 20:49 9
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
#include <iostream>
 
using namespace std;
 
int main()
{
    double *arr, summ = 0.0, min = 0, max = 0;
    int num = 0, numt = 0;
    cout << "Vvedite colichestvo chisel: ";
    cin >> num;
    arr = new double[num];
 
    for(int i = 1; i <= num; i++){
        
        cout << "arr[" << i << "] = ";
        cin >> arr[i-1];
        
        if(i == 1){
            min = arr[0]; max = arr[0];
        }
 
        if(arr[i-1] < min)
            min = arr[i-1];
        if(arr[i-1] > max)
            max = arr[i-1];
    }
 
    
    for(int i = 1; i <= num; i++){
        if((arr[i-1] != min) && (arr[i-1] != max)){
            summ += arr[i-1];
            numt++;
        }
    }
    
    cout << "sred. aryf. = " << summ / numt << endl;
    delete arr;
 
    system("PAUSE >> void");
    return 0;
}
Теперь все правильно))
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
05.05.2014, 20:50 10
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
#include <iostream> 
 
using namespace std;
 
int main() 
{   
         
    const int size = 5;
    int array[size] = { 1,2,3,4,5}; 
    int i; 
    double summa = 0;
    double summa_bez_max_min;
    
setlocale(0,"rus");
int temp;
    cout << "Âõîäíîé ÷èñëîâîé ìàññèâ:\n\n";
    for (int i = 0; i < size; i++) cout << "  " << array[i];
    
    int min = 0, max = 0;
 
    for (int i = 1; i < size; i++)
     { if (array[i] < array[min]) min = i;
       if (array[i] > array[max]) max = i;
     }
 
    cout << "\n\nÌèíèìàëüíûé ýëåìåíò:  " << array[min]
         << "\nÌàêñèìàëüíûé ýëåìåíò: " << array[max]<< endl ; 
          
    
    for (int i = 0; i < size; i++)
    summa += array[i];
    summa_bez_max_min=summa-(array[min]+array[max]);
    
    cout<< "Ñðåäíåå àðèôìåòè÷åñêîå áåç ó÷¸òà ìàêñèìàëüíîãî è ìèíèìàëüíîãî ýëåìåíòîâ: ";
    cout << summa_bez_max_min/size << endl;
 
    cout << endl;
 
    
      
 
    system("pause");
    return 0;
}
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:54 11
Цитата Сообщение от ViktorNMax Посмотреть сообщение
Теперь все правильно))
уверен?
почему цикл с 1?

Добавлено через 34 секунды
mster-doc,
Цитата Сообщение от mster-doc Посмотреть сообщение
summa_bez_max_min/size
делить на size-2
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
05.05.2014, 20:55 12
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
и от себя добавлю, возьмите в привычку освобождать память после оператора new
я не использовал этот оператор
0
54 / 54 / 41
Регистрация: 20.12.2012
Сообщений: 256
05.05.2014, 20:58 13
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
#include <iostream>
 
using namespace std;
 
int main()
{
    double *arr, summ = 0.0, min = 0, max = 0;
    int num = 0, numt = 0;
    cout << "Vvedite colichestvo chisel: ";
    cin >> num;
    arr = new double[num];
 
    for(int i = 0; i < num; i++){
        
        cout << "arr[" << i << "] = ";
        cin >> arr[i];
        
        if(i == 0){
            min = arr[0]; max = arr[0];
        }
 
        if(arr[i] < min)
            min = arr[i];
        if(arr[i] > max)
            max = arr[i];
    }
 
    
    for(int i = 0; i < num; i++){
        if((arr[i] != min) && (arr[i] != max)){
            summ += arr[i];
            numt++;
        }
    }
    
    cout << "sred. aryf. = " << summ / numt << endl;
    delete arr;
 
    system("PAUSE >> void");
    return 0;
}
Я даже не знаю что на меня нашло, но начиная с 0 выглядит намного приятнее
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
05.05.2014, 20:58 14
Цитата Сообщение от cooller Посмотреть сообщение
делить на size-2
В смысле? мы делим на размер масива
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 21:00 15
mster-doc, среднее арифметическое - это сумма элементов деленное на ИХ количество. В сумме было задействовано size - 2 элемента (без макс и мин), значит и делить должны на это количество
1
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
05.05.2014, 21:20 16
И правда)) спасибо.
Кликните здесь для просмотра всего текста
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
#include <iostream> 
 
using namespace std;
 
int main() 
{   
         
    const int size = 5;
    int array[size] = { 1,2,3,4,5}; 
    int i; 
    double summa = 0;
    double summa_bez_max_min;
    
setlocale(0,"rus");
int temp;
    cout << "Âõîäíîé ÷èñëîâîé ìàññèâ:\n\n";
    for (int i = 0; i < size; i++) cout << "  " << array[i];
    
    int min = 0, max = 0;
 
    for (int i = 1; i < size; i++)
     { if (array[i] < array[min]) min = i;
       if (array[i] > array[max]) max = i;
     }
 
    cout << "\n\nÌèíèìàëüíûé ýëåìåíò:  " << array[min]
         << "\nÌàêñèìàëüíûé ýëåìåíò: " << array[max]<< endl ; 
          
    
    for (int i = 0; i < size; i++)
    summa += array[i];
    summa_bez_max_min=summa-(array[min]+array[max]);
    
    cout<< "Ñðåäíåå àðèôìåòè÷åñêîå áåç ó÷¸òà ìàêñèìàëüíîãî è ìèíèìàëüíîãî ýëåìåíòîâ: ";
    cout << summa_bez_max_min/(size-2) << endl;
 
    cout << endl;
 
    
      
 
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2014, 21:20
Помогаю со студенческими работами здесь

Найти среднее значение элементов массива (без учёта максимального и минимального) и вывести результат на экран
Условие задачи (добавлено спустя сутки после начала обсуждения, так что не удивляйтесь): ...

Вычислить среднее арифметическое максимального и минимального элементов массива
Вычислить среднее арифметическое максимального и минимального элементов массива

Высчитать среднее арифметическое элементов масива без учета минимального и максимального элемента
Помогите решить задачи( Вторая задача: Написать программу которая считает среднее арифметическое...

Определить среднее арифметическое минимального и максимального элементов массива
Определить среднее арифметическое минимального и максимального элементов массива A (n), где 0 &lt;=...


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

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

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