Вот решил это задание, всё работает правильно ( На сколько успел проверить), писал не очень чисто, поэтому много переменных без которых я думаю можно было бы обойтись.
Вот решение :
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
const int A = 12;
const int B = 10;
const int C = 8;
double ka = 0,kb=0,kc=0;
double a1 = 1, a = 0, b = 0, c = 0, b1 = 1, c1 = 1;
double crA = 0, crB = 0, crC=0,crABC=0;
int* arrA = new int[A];
int* arrB = new int[B];
int* arrC = new int[C];
cout << "Введите элементы массива A " << endl;
for (int i = 0; i < A; i++) {
cin >> arrA[i];
if (arrA[i] < 0) {
++ka;
}
}
for (int j = 0; j < A; j++) {
if (0 > arrA[j]) {
a =arrA[j];
a1 *= a;
}
}
ka = 1 / ka;
crA = pow(a1, ka);
cout << "Введите элементы массива Б " << endl;
for (int i = 0; i < B; i++) {
cin >> arrB[i];
if (arrB[i] < 0) {
++kb;
}
}
for (int j = 0; j < B; j++) {
if (0 > arrB[j]) {
b = arrB[j];
b1 *= b;
}
}
kb = 1 / kb;
crB = pow(b1, kb);
cout << "Введите элементы массива C " << endl;
for (int i = 0; i < C; i++) {
cin >> arrC[i];
if (arrC[i] < 0) {
++kc;
}
}
for (int j = 0; j < C; j++) {
if (0 > arrC[j]) {
c = arrC[j];
c1 *= c;
}
}
kc = 1 / kc;
crC = pow(c1, kc);
crABC = pow(crA * crB * crC,1.0/3.0);
cout << "Среднее геометрическое всех отрицательных элементов в этих массивах = " << crABC << endl;
}