Как используя всего одну функцию решить задачу

  1. Функцию generateMasдля генерации одномерного массива из заданного количества элементов
  2. Функцию printMasдля выводана экран монитора через два пробела значений одномерного массива из заданного количества элементов
  3. Функцию по условию задачи. Название функции должно отражать её назначение.

Используя одну функцию вычислить сумму и количество положительных элементов массива Х[20] и сумму и количество отрицательных элементов массива К[15]

Я могу найти отрицательные и положительные элементы каждого массива по отдельности,а мне как то надо это все запихнуть в одну функцию и я не понимаю как.

#include<iostream>
#include<stdlib.h>
#include<ctime>
#include<iomanip>
using namespace std; 
main()
{
    setlocale (LC_ALL,"Rus");
    srand(time(0));
    int X[20],K[15],i,j,SumPositive=0,SumNegative=0;
    cout<<"Массив X"<<endl;
    for(i=0;i<20;i++)
    {
    X[i]=rand ()%50;
    cout<<X[i]<<"   ";  
    if (X[i]>0) SumPositive=X[i];
    }
    cout<<endl;
    cout<<"Массив K"<<endl;
    for( i=0;i<15;i++)
    {
    K[i]=rand ()%50;
    cout<<K[i]<<"   ";
    if (K[i]<0) SumNegative=K[i];
    }
    cout<<endl<<"Колличество положительных элементов массива X= "<<SumPositive;
    cout<<endl<<"Колличество отрицательных элементов массива X= "<<SumNegative;
}

Ответы (1 шт):

Автор решения: Vasian

Если проблема с выводом данных из этих функций, то можно так:

void sums(int* X, int* K) {
 cout << sumPositive(X) << endl; // где sumPositive - функция нахождения суммы положительных элементов
 cout << sumNegative(K) << endl; // где sumNegative - функция нахождения суммы отрицательных элементов
}

или так:

void sums(int* X, int* K, int& sP, int& sN) {
 sP = sumPositive(X);
 sN = sumNegative(K);
}

int main() {
 //...
 int sP = 0, sN = 0;
 sums(X,K,sP,Sn);
 cout << sP << endl;
 cout << sN << endl;
}

В этом случае параметры sP и sN передаются по ссылке, что позволяет модифицировать не копию, а значение переменной, которую вы завели в main.

→ Ссылка