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

Как отсортировать строки двумерного массива?

28.11.2021, 13:32. Показов 300. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int m, n;
    int stroka, stolbec, max = 0;
 
    string line;
    do {
        cout << "Введите количество m строк от 2 до 9: ";
        while (getline(cin, line)) {
            stringstream ss(line);
            if (ss >> m) {
                if (ss.eof()) {
                    break;
                }
            }
            cout << "Введите число!" << endl;
            cout << "Введите количество m строк от 2 до 9: ";
        }
        if (m > 9 || m < 2) {
            cout << "Число не соответствует условию!" << endl;
        }
    } while (m > 9 || m < 2);
    do {
        cout << endl << "Введите количество n столбцов от 2 до 9: ";
        while (getline(cin, line)) {
            stringstream ss(line);
            if (ss >> n) {
                if (ss.eof()) {
                    break;
                }
            }
            cout << "Введите число!" << endl;
            cout << "Введите количество n столбцов от 2 до 9: ";
        }
        if (n < 2 || n > 9) {
            cout << "Число не соответствует условию!" << endl;
        }
    } while (n < 2 || n>9);
    int** D = new int* [m];
    for (int i = 0; i < m; i++) {
        D[i] = new int[n];
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << "D[" << i + 1 << "][" << j + 1 << "]= ";
            cin >> D[i][j];
        }
    }
    system("cls");
    cout << "Вывод матрицы:" << endl;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout.width(7);
            cout << "D[" << i + 1 << "][" << j + 1 << "]=" << D[i][j];
        }
        cout << endl;
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (D[i][j] > max) {
                max = D[i][j];
                stroka = i + 1;
                stolbec = j + 1;
            }
        }
    }
    cout << "Максимальный элемент: " << max << ", его индекс [" << stroka << "][" << stolbec << "]";
    
    for (int i = 0; i < m; i++)
        delete[] D[i];
    delete[] D;
    system("pause");
    return 0;
}
Как можно отсортировать строки по убыванию значений сумм элементов строк?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2021, 13:32
Ответы с готовыми решениями:

Отсортировать строки двумерного массива по сумме четных элементов в порядке возрастания
Нет конкретики в задании по поводу расположение четное или же значение. Я пытаюсь сделать по...

Как отсортировать столбцы двумерного массива по возрастанию (по сумме столбцов)?
Не понимаю, алгоритма сортировки, пожалуйста помогите

Как работает массив указателей на строки двумерного массива?
Есть работающий код: void main() { int matrix; for(i = 0; i &lt; 3; i++) { for(int j = 0; j...

Как узнать длину строки у двумерного динамического массива
Выделаю память для строк столбцов массива так: int n=11; int **mas = new int *; ...

2
AxBxC=X
152 / 132 / 58
Регистрация: 27.04.2016
Сообщений: 540
28.11.2021, 13:47 2
Как вариант, создать доп. массив, в элементах которого будет два поля:
Поле_1: Физический номер элемента строкового массива
Поле_2: Сумма элементов строки
И отсортировать этот массив (строки не трогаем).
А потом в цикле прокручивать отсортированный массив, строки брать по номеру из Поле_1.
Что-то типа индексирования в БД.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.11.2021, 03:10 3
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
#include <iostream>
#include <cstdlib>
#include <utility>
#include <ctime>
using namespace std;
 
int Sum (int *a, int m)
{
    int sum=0;
    for (int j = 0; j < m; j++)
        sum+=a[j];
    return sum;
}    
 
int main()
{
    srand((int)time(0));
    int n, m;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
    
        int **a = new int*[n];
      for (int i = 0; i < n; i++)
          a[i]=new int[m];          
    
    for (int i = 0; i < n; i++)
    {           
        for (int j = 0; j < m; j++)
        {
            a[i][j]=rand()%9 + 1;        
            cout << a[i][j] << " ";    
        }
        cout << "  sum=" << Sum(a[i],m);        
        cout << "\n";
    }
    cout << "\n"; 
 
    for (int i=0; i<n-1; i++)    
        for (int j=0; j<n-i-1; j++)             
            if(Sum(a[j],m)<Sum(a[j+1],m))
                swap(a[j],a[j+1]);            
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)        
            cout << a[i][j] << " ";       
            cout << "  sum=" << Sum(a[i],m);
        cout << "\n";
    }    
    
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;    
system("pause");
return 0;
}
0
29.11.2021, 03:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2021, 03:10
Помогаю со студенческими работами здесь

Как перезаписать строки двумерного массива в обратном порядке
Заданная квадратная матрица N * N. Строки, в которых максимальный и минимальный элементы находятся...

Отсортировать побочную диагональ двумерного массива (матрицы)
Здравствуйте. Задание: отсортировать главную и побочную диагонали матрицы по возрастанию. ( Матрица...

Отсортировать нечетные столбцы двумерного массива по возрастанию
Программа работает некорректно, помогите исправить #include &lt;iostream&gt; #include &lt;algorithm&gt;...

Побочную диагональ двумерного массива отсортировать по убыванию
Заполнить двумерный массив А различными числами. Заполнить одномерный массив числами, стоящими на...

Как сделать ,чтобы строки двумерного массива были кратные двум?
Как сделать ,чтобы строки двумерного массива были кратные двум?То есть когда я заполняю массив ,...

Как посчитать сумму двумерного массива каж. строки и записать значение в одномерный?
Создать двумерный массив A размерностью nxm. Заполняем двумерный массив числами в диапазоне ....

Как отсортировать строки двумерного массива по количеству цифр?
Программа должна: 1) Позволять пользователю задавать максимальный размер строки и количество строк...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru