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

Отсортировать строки матрицы по возрастанию сумм положительных элементов - C++

Восстановить пароль Регистрация
 
Bob_Sagen
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 47
17.01.2014, 19:41     Отсортировать строки матрицы по возрастанию сумм положительных элементов #1
Отсортировать строки матрицы по возрастанию сумм положительных элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 19:41     Отсортировать строки матрицы по возрастанию сумм положительных элементов
Посмотрите здесь:

[B]Дана целочисленная матрица n*m, n,m<=10.Упорядочить(переставить) строки матрицы по возрастанию количества положительных элементов в одной строк[/B] C++
C++ Отсортировать матрицу по возрастанию колличества положительных элементов по увелечению
Матрицы: нахождение сумм положительных элементов строк каждой матрицы C++
Упорядочить строки матрицы по неубыванию сумм положительных элементов C++
Отсортировать строки матрицы по возрастанию сумм положительных элементов C++
Отсортировать столбцы матрицы по не возрастанию суммы их элементов C++
C++ Меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец
C++ Отсортировать строки матрицы по убыванию сумм элементов каждой строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
18.01.2014, 13:26     Отсортировать строки матрицы по возрастанию сумм положительных элементов #2
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <array>
#include <algorithm>
#include <numeric>
#include <iomanip>
#include <time.h>
 
using namespace std;
 
template<typename _Ty, size_t N, size_t M = N>
using matrix_t = array<array<int, N>, M>;
 
template<typename _Matrix>
void print_matrix( const _Matrix & matrix, size_t align_width = 3 )
{
  for ( auto & line : matrix )
  {
    for ( auto & val : line )
      cout << setw( align_width ) << val << " ";
    cout << endl;
  }
  cout << endl;
}
 
 
int main()
{
  srand( (size_t)time({}) );
  matrix_t<int, 5> matrix {};
 
  for ( auto & line : matrix )
    for ( auto & val : line )
      val = -50 + rand() % 100;
 
  print_matrix( matrix );
 
  using line_t = decltype( *begin(matrix) );
  sort( begin(matrix), end(matrix), 
       []( const line_t & l_val, const line_t & r_val)
       {
         using type_t = remove_reference_t<decltype( *begin(l_val) )>;
 
         auto sum_if_greater_zero = []( const type_t & acc_val, const type_t & range_val )
         {
           return acc_val + ( range_val > 0 ? range_val : 0 );
         };
 
         auto sum_elems = [&]( const line_t & line )
         {
           return accumulate( begin(line), end(line), type_t {}, sum_if_greater_zero );
         };
 
         return sum_elems( l_val ) < sum_elems( r_val );
       } );
 
  print_matrix( matrix );
 
  getchar();
}
Yandex
Объявления
18.01.2014, 13:26     Отсортировать строки матрицы по возрастанию сумм положительных элементов
Ответ Создать тему
Опции темы

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