Предмет: Информатика, автор: savelenko00

Написать функцию, определяющую количество положительных, отрицательных и нулевых элементов массива, заполненных случайными числами (-20, 20)
Размерность указывает пользователь(на языке С++)(Функции)

Ответы

Автор ответа: orakul96
0

#include <iostream>

#include <math.h>

#include <cstdlib>

#include <time.h>

#include "тест.h"

using namespace std;

double* CreateArray(int MIN, int MAX, int n) {

srand(time(NULL));

double *a = new double[n];

for (int i = 0; i < n; i++) {

 a[i] = MIN + rand() % (MAX-MIN+1);

}

return a;

}

enum Filter {

positive = 0,

negative,

zero

};

void PrintArray(double* a, int n) {

for (int i = 0; i < n; i++) {

 cout << a[i] << " ";

}

cout << endl;

}

int FindElementsByFilter(double* a, int n, Filter searchFilter) {

int k = 0;

switch (searchFilter)

{

  case positive:

 for (int i = 0; i < n; i++) {

  if (a[i] > 0) k++;

 }

 break;

  case negative:

   for (int i = 0; i < n; i++) {

    if (a[i] < 0) k++;

   }

   break;

  case zero:

   for (int i = 0; i < n; i++) {

    if (a[i] == 0) k++;

   }

   break;

  default:

 break;

}

return k;

}

int main()

{

setlocale(LC_ALL, "rus");

int n;

cin >> n;

double* a = CreateArray(-20, 20, n);

PrintArray(a, n);

printData(a, n);

system("pause");

return 0;

}

void printData(double* a, int n)

{

cout << "Положительных: " << FindElementsByFilter(a, n, positive) << " " << "Отрицательных: " << FindElementsByFilter(a, n, negative) << " " << "Нулей: " << FindElementsByFilter(a, n, zero) << endl;

}

Похожие вопросы
Предмет: География, автор: user452