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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа на C++ найти делители http://www.cyberforum.ru/cpp-beginners/thread740838.html
Найти все делители натурального числа n. программа на циклы
C++ Задача на c++. Количество нулей в младших разрядах Здраствуйте срочно нужно решение на c++. Задача: Дано натуральное число N (N>9). Определить количество нулей, идущих подряд в младших разрядах данного. Пример: N=1020000. Количество нулей равно двум. http://www.cyberforum.ru/cpp-beginners/thread740815.html
C++ Выведите таблицу значений функции y = f (x)
Выведите таблицу значений функции y = f (x).Таблица должна иметь две колонки: в первую заносят значение xi, а во вторую yi. f(x) = числитель: x (в квадрате) - 3х +2 , знаменатель: (корень разности...
Пусть дано натуральное число n и вещественные числа x1,y1,x2,y2,.,xn,yn C++
Пусть дано натуральное число n и вещественные числа x1,y1,x2,y2,...,xn,yn. Рассматривая пары xn yi как координаты точек на плоскости, определите радиус наименьшего круга с центром в начале...
C++ Пусть вводится последовательность вещественных чисел http://www.cyberforum.ru/cpp-beginners/thread740796.html
Пусть вводится последовательность вещественных чисел,оканцивающаяся нулем и состоящая более чем из из одного ненулевого элемента.Определите: является ли эта последовательность возрастающей.
C++ Используя метод деления отрезка пополам Используя метод деления отрезка пополам,с точностью до 10(в минус четвертой степени)ю Найдите наименьший положительный корень уравнения тангенс (x) равен x. подробнее

Показать сообщение отдельно
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
21.12.2012, 10:58
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;
}
Не тестировал почти.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru