Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 9
1

Упорядочить строки матрицы по возрастанию значений их наибольших элементов

21.01.2015, 13:00. Показов 4472. Ответов 7
Метки нет (Все метки)

Задание такое: Дана матрица целых чисел. Упорядочить ее строки по возрастанию значений их наибольших элементов.
Никак не придумаю метод сортировки.
Пока имею вот что:
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
#include<stdio.h> 
#include<math.h>
#include<stdlib.h>
 
void sort(int **array, int M, int N)
{
}
 
int** matrix(int &M, int &N)
{
    int wDim,i,j;
    printf("razmernost M: ");
    scanf("%d",&M);
    printf("razmernost N: ");
    scanf("%d",&N);
    wDim = N;
    int **array = new int*[M];
    printf("\nvvedite matricy: ");
    for (i = 0; i < M; i++, wDim--) array[i] = new int[wDim];
    for (i = 0; i < M; i++) 
        for(j = 0; j < N; j++) scanf("%d",&array[i][j]);
    printf("vasha matrica: \n");
    for (i = 0; i < M; i++) {
        for(j = 0; j < N; j++)  printf("%d ",array[i][j]);
        printf("\n");
    }
    return array;
}
 
int main()
{
    int M, N;
    int **pr = matrix(M,N);
    sort(pr, M, N);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2015, 13:00
Ответы с готовыми решениями:

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

Упорядочить строки матрицы по возрастанию их наибольших элементов
как я понял нужно чтоб к примеру из матрицы 2 8 4 7 3 1 9 4 1 стало 7 3 1 2 8 4

Упорядочить строки матрицы по возрастанию значений самых больших элементов строк
Здравствуйте. Имеется задание: Дано действительную матрицу размером m x n. Упорядочить...

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

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
7
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
21.01.2015, 13:07 2
Цитата Сообщение от xandder Посмотреть сообщение
Никак не придумаю метод сортировки.
Пузырьком.
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 9
21.01.2015, 13:15  [ТС] 3
Дело в том, что: Ну найду я наибольшие элементы каждой строки, сравню их, а как строки местами поменять...
0
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
21.01.2015, 13:22 4
Цитата Сообщение от xandder Посмотреть сообщение
как строки местами поменять
Через временную дополнительную строку к примеру.
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 9
21.01.2015, 14:26  [ТС] 5
Никак не надумаю... ап...
0
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
21.01.2015, 14:43 6
Апанье вам помогает надумывать?
0
26 / 25 / 8
Регистрация: 19.01.2015
Сообщений: 84
21.01.2015, 15:34 7
Лучший ответ Сообщение было отмечено xandder как решение

Решение

если обратный ранжир нужен то там чутка поменять надо

Добавлено через 1 минуту
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
void sort(int **array, int M, int N)
{
    int n=0;
    int *tmp=new int[N];
    for(int k=0;k<M;k++)
    {
        int max=array[k][0];
        for(int i=k;i<M;i++)
            {
                for(int j=0;j<N;j++)
                {
                    if (array[i][j]>=max)
                    {           
                        max=array[i][j];
                        n=i;
                    }
                }
            }
        for(int i=0;i<N;i++)
        {
            tmp[i]=array[n][i];
            array[n][i]=array[k][i];
            array[k][i]=tmp[i];
        }
    }
    delete [] tmp;
     for (int i = 0; i < M; i++) 
     {
        for(int j = 0; j < N; j++)  printf("%d ",array[i][j]);
        printf("\n");
     }
}
Добавлено через 22 секунды
оптимизации 0

Добавлено через 1 минуту
суть: ищем максимум в матрице, меняем эту строку местами с 1, и дальше тоже самое со 2й строки
1
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 9
21.01.2015, 15:50  [ТС] 8
Спасибо. Щас разберусь)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2015, 15:50

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Упорядочить строки двумерного массива по возрастанию их наибольших элементов.
Нужно упорядочить его строки по возрастанию их наибольших элементов. #include &quot;stdafx.h&quot;...

Сортировка массива. Дана матрица размером NxM. Упорядочить ее строки по возрастанию их наибольших элементов
Дана матрица размером NxM. Упорядочить ее строки по возрастанию их наибольших элементов....

Упорядочить столбцы матрицы по убыванию значений наибольших элементов столбцов
Дана действ. матрица размера m*n, упорядочить столбцы матрицы по убыванию значений наибольших...

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


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

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

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