Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.52 KB | None | 0 0
  1.  
  2. //#include "stdafx.h"
  3.  
  4.  
  5. #include <iostream>
  6. #include <ctime>
  7. using namespace std;
  8. /*
  9. *-----------------------------------------------------------------
  10. * ф-ция вывода массива на экран
  11. * параматры:
  12. * arr - массив вещественных чисел  чисел
  13. * CountElements - количество элементов массива (размер массива)
  14. *-----------------------------------------------------------------
  15. */
  16. void PrintArray(double *arr, int CountElements)
  17. {
  18.     for(int i = 0; i < CountElements; i++)
  19.         cout << arr[i] << '\t';
  20.     cout << endl;
  21. }
  22. /*
  23. *-----------------------------------------------------------------
  24. * ф-ция заполнения массива случайными числами в диапазоне -50..50
  25. * параматры:
  26. * arr - массив вещественных чисел  чисел
  27. * CountElements - количество элементов массива (размер массива)
  28. *-----------------------------------------------------------------
  29. */
  30. void InputArray(double  *arr, int CountElements)
  31. {
  32.     for(int i = 0; i < CountElements; i++)
  33.         arr[i] = rand() % 101 - 50; // [-50..50]
  34. }
  35.  
  36.  
  37.  
  38. /*
  39. *-----------------------------------------------------------------
  40. * ф-ция замены элементов массива
  41. * параматры:
  42. * arr - массив вещественных чисел  чисел
  43. * CountElements - количество элементов массива (размер массива)
  44. *-----------------------------------------------------------------
  45. */
  46.  
  47.  
  48. // double & avg передача по сcылке , можно сделать через указатель заменить & на *
  49. int ChangeElements(double *arr, int CountElements, double & avg)
  50. {
  51.     double sum = 0; // переменная для суммы
  52.     for(int i = 0; i < CountElements; i++) sum += arr[i]; // считаем сумму всех элементов
  53.  
  54.     avg = sum / CountElements; // вычисляем среднее массива
  55.    
  56.  
  57.     int count_change_elements = 0; // количество элементов в которых была замена на ноль
  58.  
  59.     for(int i = 0; i < CountElements; i++)
  60.         if(arr[i] > avg) {  // если элемент больше среднего делаем замену на ноль
  61.             arr[i] = 0;              // замена на ноль
  62.             ++count_change_elements; // увеличываем счетчик элементов
  63.         }
  64.     return count_change_elements; // ф-ция возвращает количество элементов
  65.    
  66. }
  67.  
  68. int main()
  69. {
  70.     setlocale(LC_ALL,"Rus");
  71.     srand(time((unsigned int)0)); // чтобы постоянно были разные числа в массиве, unsigned int можно убрать
  72.     const int SIZE_ARRAY = 10; // размер массива:)
  73.     double arr[SIZE_ARRAY]; // массив вещественных чисел можно сменить на int
  74.     InputArray(arr,SIZE_ARRAY); // заполнение
  75.     PrintArray(arr,SIZE_ARRAY); // вывод на экран
  76.     double avg = 0;
  77.     double kol = ChangeElements(arr,SIZE_ARRAY,avg);
  78.  
  79.     cout << endl << "Среднее массива = " << avg << endl;
  80.     cout << "Количество замен = " << kol << endl; // замена
  81.  
  82.     PrintArray(arr,SIZE_ARRAY); // вывод массива с заменами на экран
  83.    
  84.     // для задержки окна можно использовать getch()
  85.     cin.get();
  86.     cin.get();
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement