С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tripleus
1 / 1 / 0
Регистрация: 22.12.2010
Сообщений: 29
#1

ввод матрицы с клавитауры - C++

08.03.2011, 02:38. Просмотров 634. Ответов 1
Метки нет (Все метки)

Нужно реализовать ввод с клавиатуры
Код
#include <locale>
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
#include <numeric>
 
/*
        В прямоугольной матрице найти максимальное среднее арифметическое
        среди средних арифметических каждой строки матрицы
        и вычесть его из всех элементов матриц, кроме элементов одной заданной строки 
*/
 
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])
{
        std::vector<T> v(Cols);
        std::transform(
                &m[0][0], &m[0][0] + Cols*Rows, &m[0][0],
                std::bind2nd(std::minus<T>(), *std::max_element(v.begin(),
                std::transform(m, m + Cols, v.begin(), avg<T, Rows>())))
                );
}
 
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;
}
 
int main()
{
        setlocale(LC_ALL, "");
 
        double m[3][4] = {
                {1,2,3,4},
                {1,-2,-3,4},
                {-1,-2,3,4}
                };
 
        std::cout << "Before:" << std::endl << m << std::endl;
        
        go(m);
 
        std::cout << "After:" << std::endl << m;
 
        return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 02:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ввод матрицы с клавитауры (C++):

Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) - C++
Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) и цикла for для вычисления суммы. Изменение...

Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла - C++
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти наибольший элемент. Разрешается при этом использовать...

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур - C++
Завтра дедлайн, а у меня 2 лабы и начало первого. Прошу помощи.

Ввод матрицы - C++
Всем привет. Помогите написать код ввода матрицы с клавиатуры, а затем её вывод на экран. Спасибо.

ввод матрицы 3х3 - C++
нада написать прогу для ввода матрици 3х3 с клавиатуры

Ввод - вывод матрицы - C++
#include &lt;cstdlib&gt; #include &lt;stdio.h&gt; using namespace std; /* * */ int main(int argc, char** argv) { int...

1
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
08.03.2011, 06:38 #2
Вы не знаете как использовать std::cin >> m[i][j] в цикле?
И при чем тут Visual С++?
клоны атакуют?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2011, 06:38
Привет! Вот еще темы с ответами:

ввод матрицы из файла. - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; #define M 3 #define N 3 int...

Ввод и вывод матрицы - C++
Сделать ввод и вывод матрицы.Числа рандомно . Потом транспонировать ее.

Ввод матрицы с клавиатуры - C++
С одномерными я разобрался. Теперь надо двумерные понять.

Ввод матрицы вручную - C++
Возможно ли в данной программе сделать ввод матрицы ручным способом (или с помощью рандома, как-то удобнее будет) и введение пользователем...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.