Я сам хвилини майже три вчітувався в умову, і строго не впевнений що зрозумів. Загалом може рішення може бути чімось на кшталт цього, дивись сам, я міг написати яку завгодно ахінею, це так, мов може якось так.
#include <stdio.h>
#include <algorithm>
#include <iostream>
#define INT_MIN (-2147483647+1)
#define INT_MAX 2147483647
class Mi_Clas_Analiz_Mas {
int min_par;
int max_nepar;
public:
Mi_Clas_Analiz_Mas() : min_par(INT_MAX),max_nepar(INT_MIN)
{}
void operator()(int temp) {
if (temp%2 == 0) { if (min_par > temp) min_par = temp; } //та мінімуму парних
else { if (min_par < temp) max_nepar = temp; }
}
void pokazi() { printf(" minimalne parne = %d , maximalne neparne = %d\n" , min_par, max_nepar); }
void dobutok() const { printf(" znajdenyj dobutok = %d\n", (max_nepar*min_par)); }
};
int main() {
Mi_Clas_Analiz_Mas An_1;
An_1 = forieach(my_masyv, my_masyv+sizeof(my_masyv)/sizeof(my_masyv[0]), An_1);
An_1.pokazi();
An_1.dobutok();
return 0;
}