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

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

06.03.2017, 11:09. Показов 2231. Ответов 7
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, сделать и разобраться в этом задании:

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

В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива
В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего...

Найти максимальный и минимальный элементы массива
Ввести целочисленный двумерный массив АNxM , вывести его. Найти максимальный и минимальный элементы...

Найти максимальный и минимальный элементы массива
2) Ввести целочисленный массив, состоящий из 9 элементов. Найти максимальный и минимальный ...

Найти максимальный и минимальный элементы массива
Найти максимальный и минимальный элементы массива. Помогите, пожалуйста

7
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
06.03.2017, 11:13 2
Цитата Сообщение от xXxBadBoyxXx Посмотреть сообщение
Наименее
удаленный от среднего арифметического элементы массива.
- вот это я не совсем понял, что это значит?
0
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 85
06.03.2017, 11:25  [ТС] 3
Наверное, что-то типо такого: Найти наиболее и наименее удаленный от среднего арифметического элемент массива
Так в задании написано, я не знаю))
0
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
06.03.2017, 11:35 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
//---------------------------------------------------------------------------
#include <vcl>
#include <iostream>
#include <conio>
#include <algorithm>
#define n 20
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
double *A, Summa=0, SrAr, Min, Max;
int z, MinN, MaxN;
 
//Function Min, Max
void FunctionMinMax(void)
{
Min=A[0];
MinN=0;
Max=A[0];
MaxN=0;
for(z = 1; z < n; z++)
{
    if(A[z] < Min)
    {
        Min=A[z];
        MinN=z;
    }
    if(A[z] > Max)
    {
        Max=A[z];
        MaxN=z;
    }
}
cout << "Min = " << Min << "\n";
cout << "MinN = " << MinN << "\n";
cout << "Max = " << Max << "\n";
cout << "MaxN = " << MaxN << "\n";
}
 
int main(int argc, char* argv[])
{
A = new double[n];
cout << "Poluchennii massiv:\n";
for(z = 0; z < n; z++)
{
    A[z] = rand()%1024 - 400;
    cout << z << ": " << A[z] << "\n";
}
for(z = 0; z < n; z++)
    Summa += A[z];
SrAr = Summa/n;
cout << "SrAr = " << SrAr << "\n";
FunctionMinMax();
//Sort
sort(A, A+n);
cout << "Massiv posle sortirovki:\n";
for(z = 0; z < n; z++)
    cout << z << ": " << A[z] << "\n";
 
getch();
return 0;
}
//---------------------------------------------------------------------------
1
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 85
06.03.2017, 11:48  [ТС] 5
Огромное спасибо! Только один вопрос, почему минимума и максимума по 2 раза?
0
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
06.03.2017, 11:57 6
Лучший ответ Сообщение было отмечено xXxBadBoyxXx как решение

Решение

А, ну все, понял теперь. Вот добавил этот код:
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
//---------------------------------------------------------------------------
#include <vcl>
#include <iostream>
#include <conio>
#include <algorithm>
#include <math>
#define n 20
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
double *A, Summa=0, SrAr, Min, Max, NU/*Naimenee udalennii*/, Distance, NewDistance;
int z, MinN, MaxN, NUN;
 
//Function Min, Max
void FunctionMinMax(void)
{
Min=A[0];
MinN=0;
Max=A[0];
MaxN=0;
for(z = 1; z < n; z++)
{
    if(A[z] < Min)
    {
        Min=A[z];
        MinN=z;
    }
    if(A[z] > Max)
    {
        Max=A[z];
        MaxN=z;
    }
}
cout << "Min = " << Min << "\n";
cout << "MinN = " << MinN << "\n";
cout << "Max = " << Max << "\n";
cout << "MaxN = " << MaxN << "\n";
}
 
int main(int argc, char* argv[])
{
A = new double[n];
cout << "Poluchennii massiv:\n";
for(z = 0; z < n; z++)
{
    A[z] = rand()%1024 - 400;
    cout << z << ": " << A[z] << "\n";
}
for(z = 0; z < n; z++)
    Summa += A[z];
SrAr = Summa/n;
cout << "SrAr = " << SrAr << "\n";
FunctionMinMax();
 
//Naimenee udalennii
Distance=fabs(SrAr-A[0]);
NU=A[0];
NUN=0;
for(z = 1; z < n; z++)
{
    NewDistance = fabs(SrAr-A[z]);
    if(NewDistance < Distance)
    {
        Distance = NewDistance;
        NU=A[z];
        NUN=z;
    }
}
cout << "Naimenee udalennii element = " << NU << "\n";
cout << "Ego nomer = " << NUN << "\n";
 
//Sort
sort(A, A+n);
cout << "Massiv posle sortirovki:\n";
for(z = 0; z < n; z++)
    cout << z << ": " << A[z] << "\n";
 
getch();
return 0;
}
//---------------------------------------------------------------------------
Добавлено через 1 минуту
Цитата Сообщение от xXxBadBoyxXx Посмотреть сообщение
Огромное спасибо! Только один вопрос, почему минимума и максимума по 2 раза?
- первый - сам минимум, второй - его номер в массиве до сортировки, с максимумом тоже самое.
1
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 85
06.03.2017, 12:03  [ТС] 7
Все, понял. Еще раз большое спасибо!))
0
Модератор
Эксперт .NET
5812 / 4689 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
06.03.2017, 12:58 8
Альтернативное решение:
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include<ctime>
 
double maxvalue(const double*, int);        //функция поиска максимума
double minvalue(const double*, int);        //функция поиска минимума
double average(const double*, int);         //функция поиска среднего арифметического
double nearestToAver(const double*, int);   //функция поиска значения, ближайшего к среднему
void sort(double *arr, int n);              //функция сортировки
 
int main()
{
    srand(time(nullptr));
    int n;
    std::cout << "Enter size of array: ";
    std::cin >> n;
    double *arr = new double[n];
    std::cout << "Array:" << std::endl;
    for(int i=0; i<n; i++)
    {
        arr[i] = (rand()%101-50)/10.0;
        std::cout << arr[i] << ' ';
    }
    std::cout << std::endl;
    std::cout << "Max = " << maxvalue(arr, n) << std::endl;
    std::cout << "Min = " << minvalue(arr, n) << std::endl;
    std::cout << "Average value = " << average(arr, n) << std::endl;
    std::cout << "Nearest to average value = " << nearestToAver(arr, n) << std::endl;
    sort(arr, n);
    std::cout << "Sorted array:" << std::endl;
    for(int i=0; i<n; i++)
    {
        std::cout << arr[i] << ' ';
    }
    return 0;
}
//функция поиска максимума
double maxvalue(const double *arr, int n)
{
    double result = arr[0];
    for(int i=0; i<n; i++)
        if (arr[i]>result) result = arr[i];
    return result;
}
//функция поиска минимума
double minvalue(const double *arr, int n)
{
    double result = arr[0];
    for(int i=0; i<n; i++)
        if (arr[i]<result) result = arr[i];
    return result;
}
//функция поиска среднего арифметического
double average(const double *arr, int n)
{
    double sum = 0;
    for(int i=0; i<n; i++)
        sum+=arr[i];
    return sum / n;
}
//функция поиска значения, ближайшего к среднему
double nearestToAver(const double *arr, int n)
{
    double aver = average(arr, n);
    double nearest = arr[0];
    for(int i=0; i<n; i++)
        if (fabs(arr[i]-aver)<fabs(nearest-aver)) nearest = arr[i];
    return nearest;
}
//функция сортировки
void sort(double *arr, int n)
{
    for (int i=0; i<n-1; i++)
        for (int j=i+1; j<n; j++)
            if (arr[i]>arr[j])
                std::swap(arr[i], arr[j]);
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2017, 12:58

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

Найти минимальный и максимальный элементы массива
Прошу проверить код. #include &lt;iostream&gt; // Вводит массив с клавиатуры void read_arr(int arr,...

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька».
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода &quot; пузырька&quot;!!! Дан...

Найти первый минимальный и последний максимальный элементы массива. Поменять местами столбцы, содержащие эти элементы
Найти первый минимальный и последний максимальный элементы массива. Поменять местами столбцы,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.