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

Перегруженные функции сортировки элементов строк матрицы по возрастанию

01.02.2021, 20:37. Показов 1572. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие - Написать перегруженные функции (int, double, char) для выполнения следующих задач:
1.1. Определение максимального элемента на главной диагонали матрицы.
1.2. Определение минимального элемента на главной диагонали матрицы.

1.3. Сортировка элементов строк матрицы по возрастанию.
1.4. Сортировка элементов столбцов матрицы по убыванию.
 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.



Как это можно сделать для типов double и char?


Если массив не будет принимать размер double или char, строго использовать обычный массив. Мб нужно по другому немного?

К примеру -
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
#include <iostream>
#include <iostream>
using namespace std;
 
void BubbleSort(int n)
{
 
    int arr[n][n];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            arr[i][j] = rand() % 10;
 
    for (unsigned i = 0; i < n; i++) {
        for (unsigned j = 0; j < n - 1; j++) {
            for (unsigned k = 0; k < n - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
                }
            }
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
 
 
void BubbleSort(double d)
{
 
   double arr[d][d];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            arr[i][j] = double(rand() % 10);
 
    for (unsigned i = 0; i < n; i++) {
        for (unsigned j = 0; j < n - 1; j++) {
            for (unsigned k = 0; k < n - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
                }
            }
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
 
 
 
 
 
 
int main(){
 
    BubbleSort(3);
    BubbleSort(2.5);
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2021, 20:37
Ответы с готовыми решениями:

3.1. Дана матрица. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию произведения четных элементов строк.
3.1. Дана матрица. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию...

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию произведения чётных элементов строк
Дана матрица X. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию...

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

Объяснить и подробно прокомментировать, что происходит в коде (перегруженные функции, функции сортировки)
Написать перегруженные функции сортировки одномерного числового массива и массива строк. В качестве...

7
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 20:42 2
Цитата Сообщение от grecigor Посмотреть сообщение
BubbleSort(2.5);
Это у тебя будет массив размером два с половиной элемента?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
void BubbleSort(int n)
{
 
    T arr[n][n];
...............................
 
                   T tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
................................
Добавлено через 37 секунд
C++
1
2
3
4
5
6
7
int main(){
 
    BubbleSort<int>(10);
    BubbleSort<double>(20);
    BubbleSort<char>(30);
 
}
1
0 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 34
01.02.2021, 20:43  [ТС] 3
Препод запретил использовать шаблон
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 20:46 4
Цитата Сообщение от grecigor Посмотреть сообщение
Препод запретил использовать шаблон
Значит, для начала вынеси создание и заполнение двумерного массива в функцию main, а в BubleSort оставь только сортировку, массив и размерности передавай параметром
1
0 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 34
01.02.2021, 20:48  [ТС] 5
Понял, спасибо
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 20:50 6
Не заморачивайся пока с разными типами, сделай только для одного - int или double
0
0 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 34
01.02.2021, 23:42  [ТС] 7
Условие - должно быть 3 перегрузки типа int, char, double, без шаблонов. Сортировка сделана правильно в ней я уверен, правильно я сделал сами перегрузки?








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
#include <iostream>
#include <iostream>
#include <ctime>
using namespace std;
 
void BubbleSort(int **arr, const int n)
{
 
 
    for (unsigned i = 0; i < n; i++) {
        for (unsigned j = 0; j < n - 1; j++) {
            for (unsigned k = 0; k < n - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
                }
            }
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout<<"\n";
    }
}
 
void BubbleSort(double **arr, const int n)
{
 
    for (unsigned i = 0; i < n; i++) {
        for (unsigned j = 0; j < n - 1; j++) {
            for (unsigned k = 0; k < n - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
                }
            }
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout<<"\n";
    }
}
 
void BubbleSort(char **arr, const int n)
{
 
    for (unsigned i = 0; i < n; i++) {
        for (unsigned j = 0; j < n - 1; j++) {
            for (unsigned k = 0; k < n - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
                }
            }
        }
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout<<"\n";
    }
}
 
 
 
int main(){
 
    srand((int)time(0));
 
    int n = 0;
    cin>>n;
 
    int **a = new int*[n];
    for (int i = 0; i < n; i++)
        a[i]=new int[n];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j]=rand()%8 + 1;
 
        }
 
    }
    BubbleSort(a,n);
    cout<<"\n";
    BubbleSort(a,n);
    cout<<"\n";
    BubbleSort(a,n);
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
02.02.2021, 00:22 8
Цитата Сообщение от grecigor Посмотреть сообщение
Условие - должно быть 3 перегрузки типа int, char, double, без шаблонов. Сортировка сделана правильно в ней я уверен, правильно я сделал сами перегрузки?
Правильно.
Цитата Сообщение от grecigor Посмотреть сообщение
BubbleSort(a,n);
    cout<<"\n";
    BubbleSort(a,n);
    cout<<"\n";
    BubbleSort(a,n);
Здесь можно три раза не вызывать, всегда вызовется для int

Добавлено через 39 секунд
Цитата Сообщение от grecigor Посмотреть сообщение
int tmp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = tmp;
Здесь тоже надо тип поменять соответственно
0
02.02.2021, 00:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2021, 00:22
Помогаю со студенческими работами здесь

Составить процедуру сортировки элементов каждой строки матрицы по возрастанию
Составить процедуру сортировки элементов каждой строки матрицы по возрастанию. Используя эту...

Сортировка строк матрицы по возрастанию произведения четных элементов строк
Доброго времени форумчане....нужна ваша помощь в доработке программы.... Вот условие... Дана...

Шаблонная функция для сортировки матрицы по возрастанию элементов хар. столбца
Написать функцию-шаблон , упорядочивающую строки в матрице по возрастанию элементов...

Функция сортировки элементов по возрастанию отдельно для каждой строки матрицы
void sort(int ar) { for (int i = 0; i &lt; size; i++) { for (int j = i + 1; j &lt; size; j++)...

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

программа сортировки элементов строк матрицы
Помогите усовершенствовать программу сортировки элементов строк матрицы. Нудно сюда же вести...


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

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