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

Матрицы: отсортировать главную диагональ по убыванию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы с рекурсией http://www.cyberforum.ru/cpp-beginners/thread579262.html
Ситуация такая: Требуется построить граф вопросника. В main мы делим таблицу по определенному условию. потом запускаем countmnozh, передав ей таблицу, куда записать получившийся граф. После...
C++ Вывести значения функции в заданном интервале Имеется цикл for(p=0;p<=1;p=p+0.05).Каждый раз к p прибавляются разные значения. Например один раз 0,05000000000002 другой 0.0499999999999. В результате не высчитывается значение функции H при... http://www.cyberforum.ru/cpp-beginners/thread579253.html
C++ кодировка символов
Всем привет! Столкнулся с такой проблемкой: есть поле unsigned char в него я и ввожу параметр значения, однако необходимо чтобы результат ввода оказался пределах от 0 до 99, как ограничить ввод...
C++ Блок Схемы
Люди помогите нарисовать блок схему Вводится n чисел до тех пор пока не будет введено число из промежутка от 10 до 20. Подсчитать количество нечетных чисел и вывести. random(50)
C++ Информатика 8-9 классы http://www.cyberforum.ru/cpp-beginners/thread579204.html
Народ! Срочно нудна помощь! Информатика 8-9 класс! Пожалуйста, кто сможет помочь=))
C++ Скрытие закрытых членов класса Здравствуйте! Если создать простой пример класса: class MyClass { int X; // закрытый экземпляр переменной public: подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
19.05.2012, 03:44
C++
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
#define N 7
 
int* min_element_in_line(int *);
void sort_diag(int *);
 
int main()
{
    int arr[N][N], diag[N];
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(0, 20); 
    std::generate(&arr[0][0], &arr[N][N], [&uid, &gen] {return uid(gen); } ); 
    std::for_each(arr, arr + N, [](const int* pvalue)
       {std::copy(pvalue, pvalue + N, std::ostream_iterator<int>
           (std::cout, " ") ); std::cout<< std::endl; } );
    int index = 0;
    std::cout<< std::endl; 
    std::for_each(arr, arr + N, [&index, &arr](int* pvalue)
       {std::swap(*min_element_in_line(pvalue), pvalue[index++] ); 
        std::copy(pvalue, pvalue + N, std::ostream_iterator<int>
            (std::cout, " ") ); std::cout<< std::endl; } );
    for (int i=0; i < N; i++)
        diag[i] = arr[i][i];
    std::cout<< std::endl; 
    sort_diag(diag);  
    for (int i=0; i < N; i++)
        arr[i][i] = diag[i];
    std::for_each(arr, arr + N, [](const int* pvalue)
       {std::copy(pvalue, pvalue + N, std::ostream_iterator<int>
           (std::cout, " ") ); std::cout<< std::endl; } );    
    return 0;
}  
 
int* min_element_in_line(int *a)
{
    return std::min_element(a, a + N);
} 
 
void sort_diag(int *x)
{
    std::sort(x, x + N, std::greater<int>());
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru