Advertisement
cacodemon665

Лаба 13 Вариант 5

Apr 8th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <time.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. struct StackNode
  7. {
  8.     int value;
  9.     StackNode* next;
  10. };
  11.  
  12. StackNode* Add(StackNode* node, int value)
  13. {
  14.     StackNode* new_node = new StackNode;
  15.     new_node->value = value;
  16.     new_node->next = node;
  17.  
  18.     return new_node;
  19. }
  20.  
  21. void Print(StackNode* node)
  22. {
  23.     if (!node)
  24.         return;
  25.  
  26.     cout << node->value << " ";
  27.  
  28.     Print(node->next);
  29. }
  30.  
  31. void DeleteAll(StackNode* node)
  32. {
  33.     if (!node)
  34.         return;
  35.  
  36.     DeleteAll(node->next);
  37.     delete node;
  38. }
  39.  
  40. int main()
  41. {
  42.     const int stack_size = 20;
  43.     StackNode* top = nullptr;
  44.     int sum = 0;
  45.  
  46.     srand(time(0));
  47.  
  48.     for (int i = 0; i < stack_size; i++)
  49.     {
  50.         //top = Add(top, rand() % 101 - 50);
  51.  
  52.         int temp;
  53.         cin >> temp;
  54.         top = Add(top, temp);
  55.  
  56.         sum += top->value;
  57.     }
  58.  
  59.     cout << "Stack: ";
  60.  
  61.     Print(top);
  62.  
  63.     cout << endl;
  64.  
  65.     double average = sum / (double)stack_size;
  66.     StackNode * current = top;
  67.  
  68.     //cout << "Sum: " << sum << endl;
  69.     cout << "Average: " << average << endl;
  70.  
  71.     int cnt = 0;
  72.  
  73.     while (current)
  74.     {
  75.         if (current->value >= average)
  76.         {
  77.             cnt++;
  78.         }
  79.  
  80.         current = current->next;
  81.     }
  82.  
  83.     cout << "Number of elements greater than average: " << cnt << endl;
  84.  
  85.  
  86.     DeleteAll(top);
  87.  
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement