• Как посчитать среднее геометрическое значений в 3 разных массивов?

    resolut1123
    @resolut1123
    Студент
    Вот решил это задание, всё работает правильно ( На сколько успел проверить), писал не очень чисто, поэтому много переменных без которых я думаю можно было бы обойтись.
    Вот решение :
    #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;
    
    }
    Ответ написан
    7 комментариев