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

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

Восстановить пароль Регистрация
 
Zachry
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 3
05.05.2014, 19:06     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #1
Написать программу, которая вычисляет среднее арифметическое элементов массива без учета минимального и максимального элементов массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2014, 19:06     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива
Посмотрите здесь:

Составит пограмму, которая вычисляет среднее арифметическое максимального и минимального значения элементов одномерного массива Х C++
C++ среднее арифметическое элементов массива без учета минимального и максимального элементов массива
C++ Найти среднее арифметическое индексов минимального и максимального элементов массива
найти среднее арифметическое минимального и максимального элементов массива А(n),где 0<=n<=20. C++
C++ Найти среднее арифметическое максимального и минимального элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
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;
}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:13     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #3
mster-doc, твоя программа :
1. не выполняет то что просил тс, а именно среднее арифметическое без учета максимального и минимального элементов
2. даже просто среднее арифметическое будет посчитано неверно, так как в результате всегда будет целое значение, а разве не может быть действительное?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
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;
}
ViktorNMax
54 / 54 / 9
Регистрация: 20.12.2012
Сообщений: 154
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;
}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 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 для лохов)
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
05.05.2014, 20:40     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #7
ViktorNMax,
Цитата Сообщение от cooller Посмотреть сообщение
твоя программа :
1. не выполняет то что просил тс, а именно среднее арифметическое без учета максимального и минимального элементов
и от себя добавлю, возьмите в привычку освобождать память после оператора new
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 20:43     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #8
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
и от себя добавлю, возьмите в привычку освобождать память после оператора new
или использовать вектор)
ViktorNMax
54 / 54 / 9
Регистрация: 20.12.2012
Сообщений: 154
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;
}
Теперь все правильно))
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
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;
}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 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
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
05.05.2014, 20:55     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #12
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
и от себя добавлю, возьмите в привычку освобождать память после оператора new
я не использовал этот оператор
ViktorNMax
54 / 54 / 9
Регистрация: 20.12.2012
Сообщений: 154
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 выглядит намного приятнее
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
05.05.2014, 20:58     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #14
Цитата Сообщение от cooller Посмотреть сообщение
делить на size-2
В смысле? мы делим на размер масива
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
05.05.2014, 21:00     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива #15
mster-doc, среднее арифметическое - это сумма элементов деленное на ИХ количество. В сумме было задействовано size - 2 элемента (без макс и мин), значит и делить должны на это количество
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2014, 21:20     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива
Еще ссылки по теме:

C++ Написать программу, которая вычисляет среднее арифметическое элементов массива без учета макси-мального
2.1 Написать программу, которая вычисляет среднее арифметическое элементов массива без учета минимального и максимального элементов массива. Организов C++
C++ Вычислить среднее геометрическое номеров максимального и минимального элементов массива

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

Или воспользуйтесь поиском по форуму:
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
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;
}
Yandex
Объявления
05.05.2014, 21:20     Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива
Ответ Создать тему
Опции темы

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