0 / 0 / 0
Регистрация: 04.11.2017
Сообщений: 6
1

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

04.11.2017, 19:46. Показов 4078. Ответов 1
Метки нет (Все метки)

Дан двумерный массив (N+15)x(N+15) отсортировать строки по возрастанию суммы чисел в этих строках, числа генерировать случайно в интервале [-N-15; N+15]
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2017, 19:46
Ответы с готовыми решениями:

Отсортировать массив указателей на строки матрицы по убыванию суммы в этих строках
Пусть у нас есть двумерный массив int a. В этом массиве находятся результаты турнира по футболу, в...

Отсортировать строки по возрастанию суммы цифр чисел в строках
отсортировать строки по возрастанию суммы цифр чисел в строках

Отсортировать строки матрицы по возрастанию их суммы
Нужно создать двумерный массив, размером 10 х 10. Заполнить его случайно целыми числами, в районе ...

Отсортировать нечетные столбцы массива по возрастанию суммы элементов этих столбцов
:(Отсортировать нечетные столбцы массива по возрастанию суммы элементов этих столбцов

1
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
05.11.2017, 11:38 2
Лучший ответ Сообщение было отмечено Pomogitepzh как решение

Решение

Если целью является упорядоченный вывод отсортированных строк, без изменения исходного массива, то вот:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//проверено в Visual Studio 2017
#include <iostream>
#include <ctime>
#include <map>
using namespace std;
 
int main()
{
    //инициализируем генератор случайных чисел
    srand(time(NULL));
 
    //определяем массив
    int N;
    cin >> N;
    int n = N + 15;
    int **M = new int*[n];
    for (int i = 0; i < N + 15; i++)
        M[i] = new int[n];
 
    //инициализируем массив
    int A = -N - 15, B = N + 15;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            //случайные в диапазоне [A;B]
                M[i][j] = A + rand() % (B - A + 1);
        
    //вывод строк исходного массива 
    cout << "UNSORTED" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << M[i][j] << " ";
        cout << endl << endl;
    }
 
    //используем ассоциативный массив для упорядочения строковых сумм
    //ключ - строковая сумма, значение - индекс строки массива М
    map <int, int> m;
    int S;
    for (int i = 0; i < n; i++)
    {
        S = 0;
        for (int j = 0; j < n; j++)
            S = S + M[i][j];//находим сумму строки
        
        m[S] = i;//запоминаем индекс строки с найденной суммой
    }
 
    //выводим строки в порядке возрастания сумм 
    cout << endl;
    cout << "SORTED" << endl;
        map <int, int>::iterator it;
    for (it = m.begin(); it != m.end(); it++)
    {
        for (int i = 0; i < n; i++)
        {
            cout << M[(*it).second][i] << " ";
        }
//под каждой строкой выводим сумму
    cout << endl << "    S=" << (*it).first << endl << endl;
    }
    
            return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2017, 11:38

Отсортировать элементы матрицы в строках по возрастанию
Доброго времени суток! Помогите пожалуйста...нужно решить задачу, у меня выходить только задать...

Отсортировать элементы в строках матрицы по возрастанию
Есть код, но работает не правильно, помогите поправить сортировку (функция &quot;sort1&quot;), пожалуйста ...

Отсортировать числа в строках матрицы по количеству делителей и отсортировать строки по сумме цифр
Помогите с программой, пожалуйста В файле 25 чисел. Вывести на экран матрицу 5х5 отсортировав...

Найти сумму чётных элементов в каждом столбце матрицы, отсортировать столбцы по возрастанию этих характеристик
Дана прямоугольная матрица. Найти сумму четных элементов в каждом столбце матрицы и отсортировать...


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

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

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