C++ Средние арифметические столбцов

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Света Морозова
Сообщения: 18
Зарегистрирован: 25 окт 2009, 09:05

Помогите, пожалуйтса, составить программу на С++.

Определить средние арифметические столбцов матрицы.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

на чем остановились в решении?
Приглашаю на свой блог о программировании: pro-prof.com
Света Морозова
Сообщения: 18
Зарегистрирован: 25 окт 2009, 09:05

Я не знаю, как мне ввести матрицу с клавиатуры, а также размеры ее n,m.
Надо ввести с клавиатуры, а я знаю только как задать конкретную.
Как мне переделать?

Код: Выделить всё

#include <iostream>
#include <numeric>
 
int main()
{
  const int n = 3;
  const int m = 3;
 
  int matrix[n][m] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
  };
 
  double average[n];
 
  for (int i = 0; i < n; ++i)
    average[i] = static_cast<double>(std::accumulate(matrix[i], matrix[i] + m, 0)) / m;
 
  for (int i = 0; i < n; ++i)
    std::cout << "Average " << i + 1 << ": " << average[i] << std::endl;
 
  return 0;
}
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

#include <iostream>
#include <numeric>
using std::cin;
int main(){
	int n,m,**matrix,i,j;
	double *average;
	cin>>n>>m;
	matrix=new int*[n];
	for(i=0;i<n;i++){
		matrix[i]=new int[m];
		for(j=0;j<m;j++)
			matrix[i][j]=i*n+j;
	}
	average=new double[n];
	for (int i = 0; i < n; ++i)
		average[i] = static_cast<double>(
			std::accumulate(matrix[i], matrix[i] + m, 0)
		)/m;

	for (int i = 0; i < n; ++i)
		std::cout << "Average " << i + 1 << ": " << average[i] << std::endl;
	delete []matrix;
	delete []average;
	cin.get(),cin.get();
	return 0;
}  
Приглашаю на свой блог о программировании: pro-prof.com
Света Морозова
Сообщения: 18
Зарегистрирован: 25 окт 2009, 09:05

Большое спасибо
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Строки матрицы тоже нужно не забыть удалить перед выходом:

Код: Выделить всё

for(i=0;i<n;i++)
{
   delete [] matrix[i];
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Света Морозова
Сообщения: 18
Зарегистрирован: 25 окт 2009, 09:05

большое Спасибо
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Romeo спасибо :) . Пытался поднять вам репутацию, жал кнопку, но что-то неподнимается :(
Приглашаю на свой блог о программировании: pro-prof.com
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Странно, а у меня вроде получилось тебе поднять :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

у меня тоже вроде что-то получилось уже,но где она отображается? ))
Приглашаю на свой блог о программировании: pro-prof.com
Ответить