Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 50
1

Упорядочить строки матрицы

10.05.2022, 15:38. Показов 350. Ответов 7
Метки нет (Все метки)

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream> 
#include <iomanip> 
#include <math.h> 
#include <cstdlib> 
#include <time.h> 
#include <conio.h> 
 
 
using namespace std;
 
int i, j;
 
 
float constanta() {
    const int N = 4;
    const int M = 3;
    int v, k, i, j;
    int a[N][M] = {
      {1,5,0},
      {2,6,3},
      {3,7,9},
      {4,8,7} };
 
    cout << "matrix" << endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
            cout << setw(3) << a[i][j];
        cout << endl;
    }
 
 
    for (int j = 0; j < M; ++j)
    {
        for (int i = 1; i < N; ++i)
        {
            v = a[i][j];
            k = i - 1;
            while ((k >= 0) && (a[k][j] < v))
            {
                a[k + 1][j] = a[k][j];
                --k;
            }
            a[k + 1][j] = v;
        }
    }
    cout << "new matrix:\n";
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << a[i][j] << "  ";
        cout << endl;
    }
    return 0;
}
float random()
{
    const int n = 4;
    int a[n][n], i, j;   
    srand(time(NULL));
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            a[i][j] = rand() % 10;       
    }
    for (i = 0; i < n; i++)
    {
        cout << endl;
        for (j = 0; j < n; j++)
            cout << a[i][j] << "  ";   
    }
    int v, k;
    for (int j = 0; j < n; ++j)
    {
        for (int i = 1; i < n; ++i)
        {
            v = a[i][j];    
             k = i - 1;
            while ((k >= 0) && (a[k][j] < v))     
            {
                a[k + 1][j] = a[k][j];   
                --k;
            }
            a[k + 1][j] = v;   
        }
    }
    cout << "vivod novoy matrix:" << endl;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            cout << a[i][j] << "  ";   
        cout << endl;
    }
    cout << endl;
    return 0;
}
 
 
float klava()
{
    const int n = 4;
    int a[n][n], i, j;
    cout << "Vvedite elementarny matricy:" << endl;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            cin >> a[i][j];
    system("cls");
    cout << "matrix" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << setw(3) << a[i][j];
        cout << endl;
    }
    int k, v;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            v = a[i][j];
            k = i - 1;
            while ((k >= 0) && (a[k][j] < v))
            {
                a[k + 1][j] = a[k][j];
                --k;
            }
            a[k + 1][j] = v;
        }
    }
    cout << "vivod novoy matricy" << endl;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            cout << a[i][j] << "  ";
        cout << endl;
    }
    return 0;
}
 
int main() {
    system("cls");
    int s;
    cout << "Program menu :\n";
    cout << "the method of entering the array :\n";
    cout << "1 constanta \n";
    cout << "2 random \n";
    cout << "3 klava \n";
    cin >> s;
    switch (s)
    {
    case 1: constanta();
        break;
    case 2: random();
        break;
    case 3: klava();
        break;
        system("cls");
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2022, 15:38
Ответы с готовыми решениями:

Упорядочить столбцы матрицы по убыванию элементов строки, содержащей максимальный элемент матрицы
дана матрица A(n,m). Упорядочить столбцы матрицы по убыванию элементов строки, содержащей...

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

Упорядочить строки матрицы лексикографически по неубыванию первых k элементов строки.
Помогите решить задачу, пожалуйста Упорядочить строки матрицы D ( m, n) лексикографически по...

Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки
Помогите решить задачу C++ пожалуйста, пожалуйста Упорядочить строки матрицы D (m. n)...

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

7
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
10.05.2022, 22:40 2
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
//...
const int n = 2, m = 3;
int arr[n][m];
for(int i = 0;i<n;i++)
for(int j = 0;j<m;j++)
arr[i][j] = rand()%(n*m*2)-n*m;
//...
for(int i = 0;i<n;i++)
        for(int j = 0;j<m - 1;j++)
            for(int k = j+1;j<m;j++)
                if(arr[i][j]<arr[i][k])
                {
                T tmp = arr[i][j];
                arr[i][j] = arr[i][k];
                arr[i][k]=tmp;
                }
//...
for(int i = 0;i<n;i++)
{
cout<<"\n";
for(int j = 0;j<m;j++)
cout<<arr[i][j]<<" ";
}
//...
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 50
11.05.2022, 15:08  [ТС] 3
Цитата Сообщение от programmer_08 Посмотреть сообщение
const int n = 2, m = 3;
int arr[n][m];
for(int i = 0;i<n;i++)
for(int j = 0;j<m;j++)
arr[i][j] = rand()%(n*m*2)-n*m;
//...
for(int i = 0;i<n;i++)
        for(int j = 0;j<m - 1;j++)
            for(int k = j+1;j<m;j++)
                if(arr[i][j]<arr[i][k])
                {
                T tmp = arr[i][j];
                arr[i][j] = arr[i][k];
                arr[i][k]=tmp;
                }
//...
for(int i = 0;i<n;i++)
{
cout<<"\n";
for(int j = 0;j<m;j++)
cout<<arr[i][j]<<" ";
}
//...
Выдает ошибку с T tmp
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
11.05.2022, 15:09 4
klimon, да, забыл переделать под int. там
C++
1
 int tmp
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 50
11.05.2022, 15:19  [ТС] 5
Цитата Сообщение от programmer_08 Посмотреть сообщение
T tmp = arr[i][j];
Почему T tmp? У меня код неправильно работает
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
11.05.2022, 15:25 6
klimon, так я же сказал вместо T напишите int.

Добавлено через 24 секунды
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
//...
const int n = 2, m = 3;
int arr[n][m];
for(int i = 0;i<n;i++)
for(int j = 0;j<m;j++)
arr[i][j] = rand()%(n*m*2)-n*m;
//...
for(int i = 0;i<n;i++)
        for(int j = 0;j<m - 1;j++)
            for(int k = j+1;j<m;j++)
                if(arr[i][j]<arr[i][k])
                {
                int tmp = arr[i][j];
                arr[i][j] = arr[i][k];
                arr[i][k]=tmp;
                }
//...
for(int i = 0;i<n;i++)
{
cout<<"\n";
for(int j = 0;j<m;j++)
cout<<arr[i][j]<<" ";
}
//...
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 50
11.05.2022, 15:30  [ТС] 7
Цитата Сообщение от programmer_08 Посмотреть сообщение
так я же сказал вместо T напишите int.
Я написал у меня не правильно упорядочивает числа, выдаются минусовые вообще
float constanta() {
const int N = 4;
const int M = 3;
int v, k, i, j;
int a[N][M] = {
{1,5,0},
{2,6,3},
{3,7,9},
{4,8,7} };

cout << "matrix" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
cout << setw(3) << a[i][j];
cout << endl;
}
for(int i = 0;i<N;i++)
for(int j = 0;j<M;j++)
a[i][j] = rand()%(N*M*2)-N*M;


for(int i = 0;i<N;i++)
for(int j = 0;j<M - 1;j++)
for(int k = j+1;j<M;j++)
if(a[i][j]<a[i][k])
{
int tmp = a[i][j];
a[i][j] = a[i][k];
a[i][k]=tmp;
}
0
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
11.05.2022, 19:43 8
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
#include<iostream>
using namespace std;
int main()
{
//...
const int n = 1, m = 10;
int arr[n][m];
for(int i = 0;i<n;i++)
for(int j = 0;j<m;j++)
arr[i][j] = rand()%(n*m*2)-n*m;
//...
for(int i = 0;i<n;i++)
        for(int j = 0;j<m-1;j++)
            for(int k = j+1;k<m;k++)
                if(arr[i][j]<arr[i][k])
                {
                int tmp = arr[i][j];
                arr[i][j] = arr[i][k];
                arr[i][k]=tmp;
                }
//...
for(int i = 0;i<n;i++)
{
cout<<"\n";
for(int j = 0;j<m;j++)
cout<<arr[i][j]<<" ";
}
cin.get();
//...
}
выводит оно отрицательные элементы, потому что туда пихаются рандомные. (здесь)
0
11.05.2022, 19:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2022, 19:43
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по убыванию значений произведений наименьшего и наибольшего элементов каждой строки
Дана матрица чисел M*N.Упорядочить строки матрицы по убыванию значений произведений наименьшего и...

Упорядочить строки матрицы
Задача - дана вещественная квадратная матрица А порядка н. Упорядочить строки матрицы по неубыванию...

Упорядочить строки матрицы
Помогите, пожалуйста, разобраться с этой бестией и отладить программу. Описание программы:...

Упорядочить строки прямогугольной матрицы.
упорядочить строки целочисленной прямоугольной матрици по возрастанию количества и найти номер...

Упорядочить строки матрицы по убыванию
Дана матрица А(n,m). Упорядочить строки матрицы по убыванию суммы находящихся в них элементов.

Упорядочить строки матрицы по алфавиту
Дана символьная матрица. Упорядочить строки матрицы по алфавиту. Помогите пожалуйста.


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

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