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

Переделать код с использованием указателей

14.01.2016, 17:18. Показов 568. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток.
Подскажите как еще можно написать программу к следующему заданию через указатели, сказали что указатели которые я тут использовал они для галочки и по сути их я не использовал.
Заранее благодарен за помощь.
Задание:
Ввести с клавиатуры количество n элементов динамического массива;
распределить память для его размещения и ввести с клавиатуры действительные значения элементов этого массива. Среднее арифметическое элементов массива и среднее геометрическое модулей элементов массива.
Вычислить среднее арифметическое элементов массива без учета значений наименьшего и наибольшего элементов;
Код
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
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
 
void Input(int massive1[], int n)
{
    for (int k = 0; k < n; k++)
    {
 
 
        cout << "Enter " << k + 1 << " the array element: ";
        int s;
        cin >> s;
        cout << "massive[" << k << "] = " << s << endl;
        massive1[k] = s;
 
    }
}
void SearchMaxMin(int massive1[], int n, int *pmax, int* pmin)
{
    *pmax = massive1[0];
    *pmin =  massive1[0];
    for (int i = 0; i<n; i++)
    {
        if (*pmax>massive1[i])
            *pmax = massive1[i];
        if (*pmin < massive1[i])
            *pmin = massive1[i];
    }
}
double End(int massive1[], int n, int*pmax, int*pmin)
{
    double l = 0;
    for (int k = 0; k < n; k++)
    {
        l += massive1[k];
    }
    double k = (l - *pmax -*pmin ) / static_cast <double> (n - 2);
    return k;
}
    int main()
    {
        int n;
        int max, min;
    do
    {
        n = 0;
        cout << "Enter the number of array elements: ";
        cin >> n;
        if (n <= 2)
        {
            cout << "The number of array elements > 2" << endl;
        }
    }
    while (n <= 2);
    int *massive1 = new int[n];
    Input(massive1, n);
    SearchMaxMin(massive1, n,&max,&min);
    double kin;
    kin = End(massive1, n, &max, &min);
    cout << "Your answer is: " << kin<<"\n";
    delete[] massive1;
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2016, 17:18
Ответы с готовыми решениями:

Переделать с использованием указателей
Прошу помощи у разбирающихся людей. Есть 2 задания. Надо переделать с использованием указателей как...

Переделать программу перемножения матриц с использованием указателей
Помогите переделать эту программу чтобы были указатели!! Вот задание: Дано две матрицы А и В,...

код с использованием указателей
Привет многоуважаемые пользователи не могли бы вы помоч в решение проблемы суть такова как сделать...

Переписать код с использованием указателей
помогите пожалуйста, нужно не использовать а все сделать через указатели #include &quot;stdafx.h&quot;...

1
335 / 183 / 80
Регистрация: 22.08.2013
Сообщений: 724
14.01.2016, 17:49 2
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 <math.h>
using namespace std;
 
void Input(int* massive1, int n)
{
    for (int k = 0; k < n; k++)
    {
 
 
        cout << "Enter " << k + 1 << " the array element: ";
        int s;
        cin >> s;
        cout << "massive[" << k << "] = " << s << endl;
        *(massive1 + k) = s;
 
    }
}
void SearchMaxMin(int* massive1, int n, int *pmax, int* pmin)
{
    *pmax = *massive1;
    *pmin =  *massive1;
    for (int i = 0; i<n; i++)
    {
        if (*pmax>*(massive1 + i))
            *pmax = *(massive1 + i);
        if (*pmin < *(massive1 + i))
            *pmin = *(massive1 + i);
    }
}
double End(int* massive1, int n, int* pmax, int* pmin)
{
    double l = 0;
    for (int k = 0; k < n; k++)
    {
        l += *(massive1 + k);
    }
    double k = (l - *pmax -*pmin ) / static_cast <double> (n - 2);
    return k;
}
 
int main()
{
        int n;
        int max, min;
    do
    {
        n = 0;
        cout << "Enter the number of array elements: ";
        cin >> n;
        if (n <= 2)
        {
            cout << "The number of array elements > 2" << endl;
        }
    }
    while (n <= 2);
    int *massive1 = new int[n];
    Input(massive1, n);
    SearchMaxMin(massive1, n,&max,&min);
    double kin;
    kin = End(massive1, n, &max, &min);
    cout << "Your answer is: " << kin<<"\n";
    delete[] massive1;
    system("pause");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2016, 17:49
Помогаю со студенческими работами здесь

Переписать код с использованием указателей на функцию
Помогите вот эту программу переделать на указатели! Спасибо всем) #include &lt;iostream&gt; #include...

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

Переделать код так, чтобы использовались диапазоны значений с помощью указателей
Мне уже стыдно сюда писать ей богу :wall: . Но есть задача переделать Код№1 так чтобы...

Структура "Студент": переделать задачу с использованием указателей
Описать Структуру с именем STUDENT с полями: 1. NAME-фамилия и инициалы; 2.GROUP-номер группы;...


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

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

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