помогите написать программу на с++ используя функции и указатели.
Записать каждый второй элемент целочисленного массива Х=(x1,x2,…,xn)
подряд в массив Y=(y1,y2,…,yk). Определить количество простых чисел в
каждом массиве. Вычислить среднее арифметическое всех элементов
массивов X и Y.
Ответы
Если правильно понял, то вот так
#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;
}
Объяснение: