Консультация онлайн # 161309

Раздел: С / С++
Автор вопроса: dmi_5116
Дата: 24.02.2009, 18:22 Консультация неактивна
Поступило ответов: 3
Здравствуйте, еше раз уважаемые эксперты!!!!!!!!! Помогите пожалуйста решить еще одну задачку:
Даны две матрицы X(3;4) Y(4;2).Найти среднее арифметическое всех элементов в каждой матрице.

Ответ # 1, Person (Посетитель)

Здравствуйте, dmi_5116!
Непосредственно фрагмент кода приведен в приложении. Поскольку ничего не сказано о типе элементов матриц, спсобе ввода, вывода результата и т.д., предположим, что элементы вещественного типа, а матрицы заполнены (значения элементов уже присвоены). Полный код должен содержать объявления и инициализацию самих матриц и т.д.

Приложение:


Person

Посетитель
24.02.2009, 19:52
Нет оценки ответа

Ответ # 2, Micren (Посетитель)

Здравствуйте, dmi_5116!
Программа. C++.
Код
#include <locale>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

// Заполняет матрицу случайными значениями и ваводит на экран
void initializeMatrix(const wchar_t* const msg,double* matrix,unsigned int dim1,unsigned int dim2)
{
	wcout<<msg<<endl;
	for(unsigned int i=0;i<dim1;i++)
	{
		for(unsigned int j=0;j<dim2;j++)
		{
			wcout<<setw(7)<<setprecision(5)<<(*matrix++=(double)rand()/RAND_MAX*50)<<L' ';
		}
		wcout<<endl;
	}
}

// Считает среднее матрицы
double average(double* matrix,unsigned int dim1,unsigned int dim2)
{
	double *end=matrix+dim1*dim2;
	double sum=0;
	while(matrix!=end)
		sum+=*matrix++;
	return sum/dim1/dim2;
}

int main()
{
	// Инициализация генератора случайных чисел
	srand((unsigned int)time(0));
	locale::global(locale("rus_rus.866"));
	// Размерности матриц
	const int dimX1=3,
		      dimX2=4;
	const int dimY1=4,
		      dimY2=2;
	// Матрицы
	double X[dimX1][dimX2],Y[dimY1][dimY2];
	// Заполняем их
	initializeMatrix(L"Матрица X:",&X[0][0],dimX1,dimX2);
	initializeMatrix(L"Матрица Y:",&Y[0][0],dimY1,dimY2);
	// Результат
	wcout<<L"Среднее арифметическое элементов матрицы X:"<<average(&X[0][0],dimX1,dimX2)<<endl;
	wcout<<L"Среднее арифметическое элементов матрицы Y:"<<average(&Y[0][0],dimY1,dimY2)<<endl;
	system("PAUSE");
	return 0;
}

Пример работы:
Код
Матрица X:
  39.18  42.213  0.5829  37.188
 24.821  46.806  19.527  30.328
 1.0483  34.486  7.5014   13.08
Матрица Y:
 13.648   11.47
 40.107 0.84841
 14.782   1.178
 32.373   17.71
Среднее арифметическое элементов матрицы X:24.73
Среднее арифметическое элементов матрицы Y:16.515

Micren

Посетитель
24.02.2009, 21:02
Нет оценки ответа

Ответ # 3, Kamerad (Посетитель)

Здравствуйте, dmi_5116!

Так можно посчитать среднее арифметическое всех элементов матрицы.

float srednee;
int Sum;

for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{
Sum+=X[i][j];
}

srednee=Sum/(3*4);

Kamerad

Посетитель
25.02.2009, 01:29
Нет оценки ответа

Мини-форум консультации # 161309


Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.