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

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

23.02.2020, 23:35. Показов 179. Ответов 2
Метки нет (Все метки)

Нужно сделать две функции, которые считают среднее арифметическое двух массивов, числа в которых генерятся рандомно.
Перепробовал уже всё что можно, убил много часов - так ничего и не работает.
В сети тоже информации толком не нашел...

C++ (Qt)
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
#include <time.h>
#include <stdlib.h>
#include <string>
#include <math.h>
using namespace std;
double funcminint(int* arr, int length)
{
    int minval = 0, min;
    min = arr[0];
    for (int i = 0; i < length; i++) {
        if (arr[i] < min)
        {
            min = arr[i];
            minval = i;
        }
    }
    return minval;
}
double funcmaxint(int* arr, int length)
{
    int maxI=0, max;
    max = arr[0];
    for (int i = 0; i < length; i++) {
        if (arr[i] > max) {
            max = arr[i];
            maxI = i;
        }
    }
    return maxI;
}
 
 
 
double funcmin(double* arr, int length)
{
    int minval = 0;
    int min = 0;
    for (int i = 0; i < length; i++) {
        if (arr[i] < arr[0])
        {
            min = arr[i];
            minval = i;
        }
    }
    return minval;
}
double funcmax(double* arr, int length)
{
    int maxI=0;
    int max = 0;
    for (int i = 0; i < length; i++) {
        if (arr[i] > arr[0]) {
            max = arr[i];
            maxI = i;
        }
    }
    return maxI;
}
double func(double * arr, int length)
{
    int i = 1;
    int minarr, maxarr;
    double sum = 0;
 
    minarr = funcmin(arr, length);
    maxarr = funcmax(arr, length);
    for (;(minarr <= maxarr); minarr++)
    {
        sum = sum + arr[minarr];
        
        i++;
    }
    float sum2 = sum / i;
    return sum2;
}
double func(int * arr, int length)
{
    int minarr, maxarr, i = 1;
    double sum = 0;
    minarr = funcminint(arr, length);
    maxarr = funcmaxint(arr, length);
    for (;minarr <= maxarr; minarr++)
    {
        sum += arr[minarr];
        i++;
    }
    sum = sum / i;
    return sum;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    double arr[12]{};
    int arr2[12]{};
    srand(time(NULL));
    for (int i = 0; i < 12; i++)
    {
        arr[i] = rand() % 25 + 1;
    }
    for (int i = 0; i < 12; i++)
    {
        arr2[i] = rand() % 26 + 1;
    }
 
    cout << "[>>] Первый массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
    cout << "[>>] Второй массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr2[i] << " ";
    }
    cout << endl << endl << endl;
    cout << "[>]Среднее арифметическое элементов первого массива: " << func(arr, 12) << endl << endl;
    cout << "[>]Среднее арифметическое элементов второго массива: " << func(arr2, 12) << endl << endl;
    return 0;
    system("PAUSE");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2020, 23:35
Ответы с готовыми решениями:

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

Вычислить среднее арифметическое максимального и минимального элементов массива
Преподователь сказал что в программе всё наоборот, хотя работает правильно. Помогите переделать. ...

Найти среднее арифметическое максимального и минимального элементов массива А
const n=7; procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin...

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

2
517 / 363 / 71
Регистрация: 24.09.2017
Сообщений: 2,063
Записей в блоге: 13
24.02.2020, 01:30 2
C++
1
2
    double arr[12]{};
    int arr2[12]{};
Должно быть
C++
1
2
    double arr[12]={};
    int arr2[12]={};
Поменять местами строки 124 и 125.
Это для начала.

Добавлено через 4 минуты
Посмотрите. Строка 39 - возврат double, а что вы возвращаете?

Добавлено через 25 минут
У вас много функций для нахождения среднеарифметического.
Я сократил до одной. Смотрите. Надо будет - отредактируете:
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
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
#include <time.h>
#include <stdlib.h>
#include <string>
#include <math.h>
using namespace std;
double mid(int *arr, int lenght)
{
    double sum = 0;
    double sr = 0;
    for (int i = 0; i < lenght; i++)
    {
        sum += arr[i];
    }
    sr = sum / lenght;
  return sr;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    int arr[12]={};
    int *ptr = arr;
    int arr2[12]={};
    int *ptr2 = arr2;
    srand(time(NULL));
    for (int i = 0; i < 12; i++)
    {
        arr[i] = rand() % 25 + 1;
    }
    for (int i = 0; i < 12; i++)
    {
        arr2[i] = rand() % 26 + 1;
    }
 
    cout << "[>>] Первый массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
    cout << "[>>] Второй массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr2[i] << " ";
    }
    cout << endl << endl << endl;
    cout << "[>]Среднее арифметическое элементов первого массива: " << mid(ptr, 12) << endl << endl;
    cout << "[>]Среднее арифметическое элементов второго массива: " << mid(ptr2, 12) << endl << endl;
    system("PAUSE");
        return 0;
}
0
517 / 363 / 71
Регистрация: 24.09.2017
Сообщений: 2,063
Записей в блоге: 13
24.02.2020, 08:21 3
Сделал два массива int и float и две функции с одинаковыми именами, принимающие, одна указатель на массив int, другая указатель на массив float, т.е перегруженные. В сами функции для наглядности добавил вывод сообщения об использовании.
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
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
#include <time.h>
#include <stdlib.h>
#include <string>
#include <math.h>
using namespace std;
double mid(int *arr, int lenght)
{
    double sum = 0;
    double sr = 0;
    for (int i = 0; i < lenght; i++)
    {
        sum += arr[i];
    }
    sr = sum / lenght;
    cout << "Использована функция int" << endl;
  return sr;
}
double mid(float *arr, int lenght)
{
    double sum = 0;
    double sr = 0;
    for (int i = 0; i < lenght; i++)
    {
        sum += arr[i];
    }
    sr = sum / lenght;
    cout << "Использована функция float" << endl;
  return sr;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    int arr[12]={};             //Объявляем целочисленный массив и заполняем его нулями
    int *ptr = arr;             //Указатель на него
    float arr2[12]={};          //Объявляем массив float и заполняем его нулями
    float *ptr2 = arr2;         //Указатель на него
    srand(time(NULL));
    for (int i = 0; i < 12; i++)
    {
        arr[i] = rand() % 25 + 1;
    }
    for (int i = 0; i < 12; i++)
    {
        arr2[i] = rand() % 26 + 1;
    }
 
    cout << "[>>] Первый массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
    cout << "[>>] Второй массив - "; 
    for (int i = 0; i < 12; i++)
    {
        cout << arr2[i] << " ";
    }
    cout << endl << endl << endl;
    cout << "[>]Среднее арифметическое элементов первого массива: " << mid(ptr, 12) << endl << endl;
    cout << "[>]Среднее арифметическое элементов второго массива: " << mid(ptr2, 12) << endl << endl;
    system("PAUSE");
        return 0;
}
Вам так надо было?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2020, 08:21
Помогаю со студенческими работами здесь

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

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

Найти среднее арифметическое максимального и минимального элементов массива
Всем доброго времени суток. Нужна ваша помощь, с C++ только начал знакомится, есть задача. Найти...

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


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

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

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