Quipex

zadanie_9

Feb 29th, 2016
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. // zadanie_9.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <ctime>
  7. using namespace std;
  8.  
  9. void fillArr(int* pArr, int sizeOfArr);
  10. void showArr(int* pArr, int sizeOfArr);
  11. void mixArrs(int* pArr, int sizeOfArr, int* pYArr);
  12. int primeNums(int* pArr, int sizeOfArr);
  13. bool isPrime(int n);
  14. double avg(int* pArr, int sizeOfArr);
  15.  
  16.  
  17. int main()
  18. {
  19.     clock_t t;
  20.     t = clock();
  21.  
  22.     setlocale(0, "rus");
  23.     cout << "Введите кол-во элементов массива: \n";
  24.     int sizeOfArr = 0;
  25.     cin >> sizeOfArr;
  26.  
  27.     cout << "\tX(N):\n";
  28.     int* pArr = new int[sizeOfArr];
  29.     fillArr(pArr, sizeOfArr);
  30.     showArr(pArr, sizeOfArr);
  31.     cout << "Кол-во простых чисел:\n";
  32.     cout << primeNums(pArr, sizeOfArr) << endl;
  33.     cout << "Среднее арифметическое:\n";
  34.     cout << avg(pArr, sizeOfArr) << endl << endl;
  35.    
  36.     cout << "\tY(k):\n";
  37.     int sizeOfYArr = sizeOfArr / 2;
  38.     int* pYArr = new int[sizeOfYArr];
  39.     mixArrs(pArr, sizeOfArr, pYArr);
  40.     showArr(pYArr, sizeOfYArr);
  41.     cout << "Кол-во простых чисел:\n";
  42.     cout << primeNums(pYArr, sizeOfYArr) << endl;
  43.     cout << "Среднее арифметическое:\n";
  44.     cout << avg(pYArr, sizeOfYArr) << endl << endl;
  45.  
  46.     delete[] pArr;
  47.     delete[] pYArr;
  48.  
  49.     t = clock() - t;
  50.     cout << "--Затрачено " << ((float)t) / CLOCKS_PER_SEC << " секунд--\n";
  51.     return 0;
  52. }
  53.  
  54. void fillArr(int* pArr, int sizeOfArr)
  55. {
  56.     srand(time(0));
  57.     for (int i(0); i < sizeOfArr; i++)
  58.     {
  59.         pArr[i] = rand() % 30 + 1;
  60.     }
  61. }
  62.  
  63. void showArr(int * pArr, int sizeOfArr)
  64. {
  65.     for (int i(0); i < sizeOfArr; i++)
  66.     {
  67.         cout << pArr[i] << ' ';
  68.     }
  69.     cout << endl;
  70. }
  71.  
  72. void mixArrs(int * pArr, int sizeOfArr, int * pYArr)
  73. {
  74.     int j(0);
  75.     for (int i(1); i < sizeOfArr; i += 2)
  76.     {
  77.         pYArr[j] = pArr[i];
  78.         j++;
  79.     }
  80. }
  81.  
  82. int primeNums(int * pArr, int sizeOfArr)
  83. {
  84.     int count = 0;
  85.     for (int i(0); i < sizeOfArr; i++)
  86.     {
  87.         if (isPrime(pArr[i]))
  88.             count++;
  89.     }
  90.     return count;
  91. }
  92.  
  93. bool isPrime(int n)
  94. {
  95.     for (int i = 2; i < sqrt(n); i++)
  96.     {
  97.         if (n % i == 0)
  98.         {
  99.             return false; // число делится, сл. непростое
  100.         }
  101.     }
  102.     return n > 1;
  103. }
  104.  
  105. double avg(int * pArr, int sizeOfArr)
  106. {
  107.     int summ = 0;
  108.     for (int i(0); i < sizeOfArr; i++)
  109.     {
  110.         summ += pArr[i];
  111.     }
  112.     double avgN = double(summ) / double(sizeOfArr);
  113.     return avgN;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment