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

Найти среднее арифметическое элементов списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выполнение программы http://www.cyberforum.ru/cpp-beginners/thread823053.html
Привет, я только начал изучать C++. По книге "Язык программирования С" Кернигана Б., Ритчи Д. Первая программа, которую я пытался написать #include <studio.h> main () { printf("hello,...
C++ Задать массив целых трёхзначных чисел с помощью датчика случайных чисел. Вывести на экран исходный массив в прямом и обратном порядке. Вот задача: Задать массив целых трёхзначных чисел с помощью датчика случайных чисел. Вывести на экран исходный массив в прямом и обратном порядке. С клавиатуры ввести число-эталон. Создать массив из... http://www.cyberforum.ru/cpp-beginners/thread823044.html
Проверьте программу! C++
Нагел программу в сети... я в Си полный 0. Прошу её переделать на С++. /*-------------------Управление клавиатурой---------------*/ /* Подключение стандартных заголовков */ #include <dos.h> ...
Неразрешенных внешних элементов FBX Sdk C++
Подключаю к проекту: #include <fbxsdk.h> Ругается на функцию: FbxManager *manager = FbxManager::Create(); Пишет: error LNK2019: ссылка на неразрешенный внешний символ "public: static class...
C++ Умножение двух матриц http://www.cyberforum.ru/cpp-beginners/thread822979.html
Посмотрите, рабоает ли программа, которая должна умножить две матрицы. Буду очень благодарен за исправление... У меня ошибка где-то у ВЫДЕЛЕННЫХ фрагментах #include <iostream> using namespace...
C++ Вывод пустых символов при рандомном заполнении массива Вот так это выглядит, не могу понять в чем проблема. Выводит через раз, периодически запускается все нормально, но в 4 случаях из 5 вот это: http://s47.***********/i118/1303/e4/53e383ccc7bd.jpg... подробнее

Показать сообщение отдельно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
30.03.2013, 19:28
annabond4, как-то так

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
#include <iostream>
#include <list>
#include <algorithm>
#include <locale>
using namespace std;
 
struct Print{
    template <typename T>
    void operator() (T &elem){
        cout << elem << ' ';
    }
};
 
class MeanValue{
    private:
        int num;
        double sum;
 
    public:
        MeanValue():num(0), sum(0) {}
 
        template <typename T>
        void operator() (T &elem){
            num++;
            sum += elem;
        }
 
        double value() {
            return sum / num;
        }
};
 
template <typename T>
void addToList(list<T> &_coll, const T &value)
{
    _coll.push_front(value);
}
 
template <typename T>
bool isEmpty(list<T> &_coll)
{
    return _coll.empty();
}
 
template <typename T>
void showList(list<T> &_coll)
{
    for_each(_coll.begin(), _coll.end(), Print());
}
 
template <typename T>
double srednee(list<T> &_coll)
{
    MeanValue mv;
    mv = for_each(_coll.begin(), _coll.end(), MeanValue());
    return mv.value(); 
}
 
template <typename T>
void swap(list<T> &_coll)
{
    list<T>::iterator pos = --_coll.end();
 
    _coll.splice(_coll.end(),                   
                 _coll,                         
                 _coll.begin());                
 
    _coll.splice(_coll.begin(),                 
                 _coll,                         
                 pos);                          
}
 
template <typename T>
void menu(list<T> &);
void instructions();
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
 
    list<int> coll;
 
    menu(coll);
 
    if(!coll.empty())
        coll.clear();
 
    cout << "\n\n";
    return 0;
}
 
void instructions()
{
    wcout << L"Выберите пункт меню: " <<
        L"\n1 - Добавить элемент в начало" <<
        L"\n2 - Проверка на пустоту" <<
        L"\n3 - Среднее арифметическое элементов" <<
        L"\n4 - Меняем местами первый и последний" <<
        L"\n5 - Выход.\n";
}
 
template <typename T>
void menu(list<T> &_coll)
{
    int punkt_menu, value;
 
    instructions();
 
    do{
        wcout << L"\n? ";
            cin >> punkt_menu;
 
            switch(punkt_menu)
            {
                case 1:
                    wcout << L"Введите число: ";
                        cin >> value;
 
                    addToList(_coll, value);
                    showList(_coll);
                    break;
                case 2:
                    if(isEmpty(_coll))
                        wcout << L"Список пуст!";
                    else
                        wcout << L"Список не пуст!";
                    break;
                case 3:
                    wcout << L"Среднее арифметическое элементов: " <<
                        srednee(_coll);
                    break;
                case 4:
                    swap(_coll);
                    showList(_coll);
                    break;
            }
 
    }while(punkt_menu != 5);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru