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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Alek70694
 Аватар для Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 240
21.12.2012, 10:36     Вычислить среднее арифметическое элементов непустого списка #1
Нужно написать программу, буду благодарен тем, кто поможет.
Вычислить среднее арифметическое элементов непустого списка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2012, 10:36     Вычислить среднее арифметическое элементов непустого списка
Посмотрите здесь:

В одномерном массиве, состоящем из 5 элементов, вычислить среднее арифметическое всех элементов C++
C++ Написать функцию, которая вычисляет среднее арифметическое элементов непустого списка
C++ вычислить среднее арифметическое нечетных элементов массива
C++ Найти количество элементов, больших 5, среди элементов главной диагонали, вычислить среднее арифметическое
Написать функцию, которая вычисляет среднее арифметическое элементов непустого списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
21.12.2012, 10:40     Вычислить среднее арифметическое элементов непустого списка #2
Alek70694, список это что такое? std::list? или свой контейнерный класс создать? или просто массив так назвали?
Alek70694
 Аватар для Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 240
21.12.2012, 10:44  [ТС]     Вычислить среднее арифметическое элементов непустого списка #3
Цитата Сообщение от Schizorb Посмотреть сообщение
Alek70694, список это что такое? std::list? или свой контейнерный класс создать? или просто массив так назвали?
Извиняюсь, не дописал.
Вычислить среднее арифметическое элементов непустого списка.
Решить задачу для списка целых чисел.

Это нужно по теме динамические структуры данных.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
21.12.2012, 10:58     Вычислить среднее арифметическое элементов непустого списка #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
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
 
// Объявление класса списка
class LinkedList{
public:
    // Конструктор
    LinkedList():head(0), tail(0){};
    // Деструктор
    ~LinkedList();
 
    // Методы вставки
    void push_back(int val);
    void push_front(int val);
 
    // Отображение элементов списка на экране
    void display() const;
    
    // подсчет среднего
    double average() const;
      
private:
    // Объявление структуры-элемента списка
    struct Node
    {
        Node* next;
        int data;
    };
    
    // Голова и хвост списка
    Node * head; 
    Node * tail; 
    
    
};
 
// Реализация методов класса
 
// Деструктор
LinkedList::~LinkedList()
{
    Node * tmp;
    while(head)
    {
        tmp = head;
        head = head->next;
        delete tmp;
    }
}
 
// Вставка в начало
void LinkedList::push_front(int val)
{
    Node * newNode = new Node;
    
    newNode->data = val;
    newNode->next = head;
    
    head = newNode;
 
    if(tail==0)
        tail = head;
}
 
// Вставка в конец
void LinkedList::push_back(int val)
{
    Node * newNode = new Node;
    
    newNode->data = val;
    newNode->next = 0;
    
    if(tail==0)
    {
        head = tail = newNode;
        return;
    }
 
    tail->next = newNode;
    tail = newNode;
}
 
// отображение на экране
void LinkedList::display() const
{
    Node * current = head;
 
    while(current)
    {
        cout<<current->data<<' ';
        current = current->next;
    }
    cout << "\n";
}
 
// подсчет среднего
double LinkedList::average() const
{
    if(!head) return 0;
    
    int count = 0; 
    double sum = 0;
    
    Node * current = head;
 
    while(current)
    {
        ++count;
        sum += current->data;
        current = current->next;
    }
    cout << "\n";
    
    return sum / count;
}
 
// главная функция
int main()
{
    int choice = 1;
    LinkedList test1;
    int val;
    
    while(choice)
    {
        system("cls");
        
        // выводим меню на экран
        cout << "List = "; test1.display(); cout << "\n";
        cout << "1. Push back\n";
        cout << "2. Push front\n";  
        cout << "3. Average\n";
        cout << "0. Exit\n";
         
        cin >> choice;
        
        if(choice >= 1 && choice <= 2)
        {
            cout << "Enter element: ";
            cin >> val;
        }
        
        // выбор действия
        switch(choice)
        {
            case 1: test1.push_back(val); break;
            case 2: test1.push_front(val); break;
            case 3: cout << "\nAverage = " << test1.average(); break;
        }
        
        cout << "\n";
        system("pause");
    }
 
    return 0;
}
Не тестировал почти.
Yandex
Объявления
21.12.2012, 10:58     Вычислить среднее арифметическое элементов непустого списка
Ответ Создать тему
Опции темы

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