@AlekseyPilatov

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

Разработать функцию, которая находит среднее геометрическое всех отрицательных элементов массивов A(12), B(10), C(8), значения задаются с клавиатуры или рандомом (это не имеет значения)

#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int A = 12,
         B = 10,
         C = 8;
    int* arrA = new int[A];
    for (int i = 0; i < A; i++) {
        cin >> arrA[A];
    }
    cout << endl;
    int* arrB = new int[B];
    for (int i = 0; i < B; i++) {
        cin >> arrB[B];
    }
    cout << endl;
    int* arrC = new int[C];
    for (int i = 0; i < C; i++) {
        cin >> arrC[C];
    }
    cout << endl;

    return 0;
}


Как после ввода элементов, посчитать их среднее геометрическое ?
Если я правильно понимаю, нужно все эти значения из 3 массивов поместить в один общий и после уже считать среднее геометрическое или суммировать в конце по одному
  • Вопрос задан
  • 2402 просмотра
Решения вопроса 1
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;

}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
Вы уже спрашивали.

Если я правильно понимаю, нужно все эти значения из 3 массивов поместить в один общий и после уже считать среднее геометрическое или суммировать в конце по одному

Можно подсчитать его для каждого массива и затем найти среднее арифметическое для полученных трёх чисел.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы