Форум программистов, компьютерный форум CyberForum.ru

матрица - C++

Восстановить пароль Регистрация
 
desunax
Сообщений: n/a
24.04.2011, 17:09     матрица #1
дана матрица 3х4, нужно найти максимальное среднее арифметическое
среди средних арифметических каждой строки матрицы
есть код, реализующий эту работу, но в нем очень трудно разобраться
может кто предложит альтернативу этой махине?

Код
int i,s1,s2,n1,n2;
 
double sum(double a) { return a+1; }

template <typename T, size_t Rows>
struct avg : public std::unary_function<const T (&)[Rows], double>
{
        T operator()(const T (&arr)[Rows]) const
        {
                return std::accumulate(arr, arr + Rows, T()) / Rows;
			
        }
};
 
 

template <typename T, size_t Cols, size_t Rows>  
void go(T (&m)[Cols][Rows])
{
	    double maxel;
std::vector<T> v(Cols);
 maxel=*std::max_element(v.begin(),
                std::transform(m, m +Cols , v.begin(), avg<T, Rows>()));
    std::cout << "\n Максимальный среднее арифметическое=" <<maxel ;

        
      std::transform(
                &m[s1][0], &m[s1][0] + Rows*n1, &m[s1][0],//Cols
                std::bind2nd(std::minus<T>(), maxel)
                );
	 

	  if (i==2) {
	  std::transform(
                &m[s2][0], &m[s2][0] + Cols*n2, &m[s2][0],
                std::bind2nd(std::minus<T>(), maxel)
                );
	  }
   }


template <typename T, size_t Rows>
struct X : public std::unary_function<const T (&)[Rows], void>
{
        X(std::ostream& os) : os_(os) {}
        
        void operator()(const T (&arr)[Rows]) const
        {
                typedef std::ostream_iterator<T> O;
                std::copy(arr, arr+Rows, O(os_, "\t"));
                os_ << std::endl;
        }
 
        std::ostream& os_;
};
 

template <typename T, size_t Cols, size_t Rows>
std::ostream& operator<< (std::ostream& os, const T (&m)[Cols][Rows])
{
        std::for_each(m, m+Cols, X<T, Rows>(os));
        return os;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 17:09     матрица
Посмотрите здесь:

матрица C++
C++ Матрица
матрица C++
МАТРИЦА!!! C++
Матрица C++
C++ Матрица
C++ матрица
Матрица C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru