Найти среднее геометрическое элементов матрицы - C (СИ)
Формулировка задачи:
Найти среднее геометрическое элементов матрицы.
Решение задачи: «Найти среднее геометрическое элементов матрицы»
textual
Листинг программы
double sg(int** matr, int n, int m)
{
double rez = 1;
double* mas = new double[n];
int i, j;
for(i = 0; i < n; ++i)
{
mas[i] = 1;
for(j = 0; j < m; ++j)
mas[i] *= matr[i][j];
mas[i] = pow(mas[i], 1.0 / m);
}
for(i = 0; i < n; ++i)
rez *= mas[i];
rez = pow(rez, 1.0 / n);
delete[] mas;
return rez;
}
Объяснение кода листинга программы
- В функции объявлены три параметра:
n- количество строк в матрице,m- количество столбцов в матрице,matr- указатель на матрицу. - Переменная
rezинициализируется единицей. - Создается динамический массив
masдля хранения результатов. - Переменные
iиjиспользуются в двух вложенных циклах. - В первом цикле каждый элемент массива
masинициализируется единицей. - Во втором цикле каждый элемент массива
masумножается на соответствующий элемент матрицы. - Третий цикл: каждый элемент массива
masвозводится в степень, обратную количеству столбцов матрицы. - Четвертый цикл: каждый элемент массива
masумножается наrez. rezвозводится в степень, обратную количеству строк матрицы.- В конце функции
rezвозвращается как результат работы функции. - Все временные переменные освобождаются с помощью оператора
delete[]. - Результатом работы функции является среднее геометрическое элементов матрицы.