Надо сделать функцию с параметром указателем на другую функцию. Появилась проблема с массивом и не пойму как ее решить.
Ошибка (активно) E0167 аргумент типа "double" несовместим с параметром типа "double (*)(int, int)"
Эту ошибку выдает в этой строке: analiz(func(n));
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<conio.h>
#include<ctime>
#include<windows.h>
//Вариант 14. Создать функцию, которая описывается следующим прототипом:
//double analiz(int *op1, int op2, double(*func)(*int, int))
//{
// return func(op1, op2);
//}
//где функция func – возвращает сумму четных из массива n - целых чисел,
//сумму нечетных массива n - целых чисел, среднее геометрическое из массива n - целых чисел.
//В главной программе выполнить вызов всех реализаций функции analiz.
using namespace std;
int const y = 6;
double func(int n[y][y])
{
int op1 = 0, op2 = 0;
double s = 0;
for (int j = 0; j < y; j++)
{
for (int i = 0; i < y; i++)
{
if (n[j][i] % 2 == 0)
{
op1++;
}
else
{
op2++;
}
s *= n[j][i];
}
}
s = pow(s, 1 / y);
return op1, op2, s;
}
double analiz(double(*func)(int, int))
{
cout << func << endl;
}
int main()
{
setlocale(LC_ALL, "RUS");
srand(time(NULL));
int n[y][y];
int op1 = 0, op2 = 0;
cout << "Массив n" << endl;
for (int j = 0; j < y; j++)
{
for (int i = 0; i < y; i++)
{
n[j][i] = rand() % 10;
cout << "n[" << j << "][" << i << "] = " << n[j][i] << endl;
}
cout << endl;
}
cout << endl;
analiz(func(n));
system("PAUSE");
}