Advertisement
wohyperion

Queue STL 2

Dec 20th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. /*
  2.     Лабораторная работа №2. Диана
  3.     Защита
  4.     Из числовой последовательности найти удалить все элементы,
  5.     лежащие в промежутке [A*X; B*X], где X – среднее арифметическое
  6.     элементов последовательности, A и B – задаваемые пользователем коэффициенты
  7. */
  8.  
  9. #include <iostream>
  10. #include <cstdlib>
  11. #include <queue>
  12. #include <iterator>
  13.  
  14. using namespace std;
  15.  
  16. float average(queue<int> obj)
  17. {
  18.     float sum = 0, i;
  19.     for (i = 0; !obj.empty(); ++i)
  20.     {
  21.         sum += obj.front();
  22.         obj.pop();
  23.     }
  24.     return sum / i;
  25. }
  26.  
  27. int main() {
  28.     queue<int> obj;
  29.     setlocale(LC_ALL, "russian");
  30.     int temp, A, B, size;
  31.     cout << "Введите A: ";
  32.     cin >> A;
  33.     cout << "Введите B: ";
  34.     cin >> B;
  35.  
  36.     cout << "Вводите числовую последовательность до (ctrl+z): ";
  37.     while (cin >> temp) {
  38.         obj.push(temp);
  39.     }
  40.  
  41.     float avg = average(obj);
  42.  
  43.     size = obj.size();
  44.  
  45.     for (int i = 0; i < size; i++)
  46.     {
  47.         if (obj.front() < float(A) * avg || obj.front() > float(B) * avg)
  48.             obj.pop();
  49.         else
  50.         {
  51.             obj.push(obj.front());
  52.             obj.pop();
  53.         }
  54.     }
  55.  
  56.     cout << "Queue: ";
  57.     while (!obj.empty()) {
  58.         cout << " " << obj.front();
  59.         obj.pop();
  60.     }
  61.     cout << endl;
  62.  
  63.     system("pause");
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement