• Предмет: Информатика
  • Автор: zxzxzz
  • Вопрос задан 6 месяцев назад

помогите написать программу на с++ используя функции и указатели.
Записать каждый второй элемент целочисленного массива Х=(x1,x2,…,xn)
подряд в массив Y=(y1,y2,…,yk). Определить количество простых чисел в
каждом массиве. Вычислить среднее арифметическое всех элементов
массивов X и Y.

Ответы

Ответ дал: 4asnykgamer
0

Если правильно понял, то вот так

#include <iostream>

#include <ctime>

#include <cstdlib>

#include <cmath>

using namespace std;

void fillArray(int *arr, int size);

void printArray(int *arr, int size);

void fillArrayY(int *arrX, int *arrY, int sizeX, int sizeY);

void printArrayY(int *arrY, int sizeY);

int countPrimeNumbers(int *arr, int size);

double average(int *arr, int size);

int main()

{

   srand(time(0));

   int sizeX = 10;

   int sizeY = sizeX / 2;

   int *arrX = new int[sizeX];

   int *arrY = new int[sizeY];

   fillArray(arrX, sizeX);

   printArray(arrX, sizeX);

   fillArrayY(arrX, arrY, sizeX, sizeY);

   printArrayY(arrY, sizeY);

   cout << "Prime numbers in array X: " << countPrimeNumbers(arrX, sizeX) << endl;

   cout << "Prime numbers in array Y: " << countPrimeNumbers(arrY, sizeY) << endl;

   cout << "Average of array X: " << average(arrX, sizeX) << endl;

   cout << "Average of array Y: " << average(arrY, sizeY) << endl;

   delete [] arrX;

   delete [] arrY;

   return 0;

}

void fillArray(int *arr, int size)

{

   for (int i = 0; i < size; i++)

   {

       arr[i] = rand() % 100;

   }

}

void printArray(int *arr, int size)

{

   for (int i = 0; i < size; i++)

   {

       cout << arr[i] << " ";

   }

   cout << endl;

}

void fillArrayY(int *arrX, int *arrY, int sizeX, int sizeY)

{

   for (int i = 0; i < sizeY; i++)

   {

       arrY[i] = arrX[i * 2 + 1];

   }

}

void printArrayY(int *arrY, int sizeY)

{

   for (int i = 0; i < sizeY; i++)

   {

       cout << arrY[i] << " ";

   }

   cout << endl;

}

int countPrimeNumbers(int *arr, int size)

{

   int count = 0;

   for (int i = 0; i < size; i++)

   {

       bool isPrime = true;

       for (int j = 2; j <= sqrt(arr[i]); j++)

       {

           if (arr[i] % j == 0)

           {

               isPrime = false;

               break;

           }

       }

       if (isPrime)

       {

           count++;

       }

   }

   return count;

}

double average(int *arr, int size)

{

   double sum = 0;

   for (int i = 0; i < size; i++)

   {

       sum += arr[i];

   }

   return sum / size;

}

Объяснение:

Вас заинтересует