Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <map>
- #include <iostream>
- #include <utility>
- using namespace std;
- typedef map <int, int>TMap; //определяем тип для работы со
- typedef TMap::iterator it; //итератор
- void print_map(TMap m)
- {
- for (it i = m.begin(); i != m.end(); ++ i)
- cout << i->first << ":" << i->second << "\n";
- cout << "\n";
- }
- TMap make_map(int n)
- {
- TMap m; //пустой словарь
- int a;
- for (int i = 0; i < n; i++)
- {
- cout << " ? ";
- cin >> a; //создаем пару и добавляем ее в словарь
- m.insert(make_pair(i, a));
- }
- return m; //возвращаем словарь как результат работы функции
- }
- int Max(TMap v)
- {
- it i = v.begin();
- int nom = 0;//номер максимального
- int k = 0; // счетчик элементов
- int m = (*i).second; //значение первого элемента
- while (i != v.end())
- {
- if (m < (*i).second)
- {
- m = (*i).second;
- nom = k;
- }
- i++; //итератор
- k++; //счетчик элементов
- }
- return nom; // номер max
- }
- int srednee(TMap v)
- {
- int s = 0;
- //перебор словаря
- for (int i = 0; i < v.size(); i++)
- s += v[i];
- int n = v.size(); //количество элементов в словаре
- return s / n;
- }
- int main()
- {
- int n;
- cout << "N?";
- cin >> n;
- TMap m = make_map(n);
- print_map(m);
- int max = Max(m);
- cout << "max = " << m[max] << " nom = " << max << endl;
- int el = srednee(m);
- cout << "srednee = " << el << endl;
- //добавление в конец
- m.insert(make_pair(n, el));
- m.erase(max); //удаление элемента
- for (it i = m.begin(); i != m.end(); i++)
- i->second+=el;
- m.erase(srednee(m)); //удаление элемента
- print_map(m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement