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

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

19.11.2011, 10:07. Показов 1306. Ответов 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
33
34
35
36
37
#include<stdio.h> 
#include<math.h>
#include<stdlib.h>
 
void sort(int **array, int dim1, int dim2)
{
 
}
 
int** submain(int &dim1, int &dim2)
{
    int wDim,i,j;
    printf("Введите размерность M: ");
    scanf("%d",&dim1);
    printf("Введите размерность N: ");
    scanf("%d",&dim2);
    wDim = dim2;
    int **array = new int*[dim1];
    for (i = 0; i < dim1; i++, wDim--) array[i] = new int[wDim];
    for (i = 0; i < dim1; i++) 
        for(j = 0; j < dim2; j++) scanf("%d",&array[i][j]);
    system("clear");
    printf("Ваша матрица: \n");
    for (i = 0; i < dim1; i++) {
        for(j = 0; j < dim2; j++)  printf("%d ",array[i][j]);
        printf("\n");
    }
    return array;
}
 
int main()
{
    system("clear");
    int dim1, dim2;
    int **pr = submain(dim1,dim2);
    sort(pr, dim1, dim2);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2011, 10:07
Ответы с готовыми решениями:

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

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

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

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

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
1
363 / 364 / 167
Регистрация: 11.06.2010
Сообщений: 703
19.11.2011, 12:45 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
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
#include <iostream>
 
using namespace std;
 
void PrintMatrix(int **,int,int,char *);
void Sort(int **,int,int);
int MaxInRows(int **,int,int);
////////////////////////////////////////////////////////////
int main()
{
    setlocale(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];
    cout<<"Ââåäèòå ýëåìåíòû:"<<endl;
    for(int i = 0;i<n;i++) 
    for(int j = 0;j<m; j++) cin>>a[i][j];
    system("cls");
    PrintMatrix(a,n,m,"Âàøà ìàòðèöà:");
    Sort(a,n,m);
    PrintMatrix(a,n,m,"Hîâàÿ ìàòðèöà:");
    for(int i=0;i<n;i++) delete a[i];
    delete [] a;
    system("pause");
    return 0;
}
////////////////////////////////////////////////////////////
void Sort(int **a,int n,int m)
{
    for(int i=0;i<n;i++) 
    {            
        for(int j=n-1;j>i;j--) 
        {     
            if(MaxInRows(a,j-1,m)>MaxInRows(a,j,m)) 
            {
                for(int k=0;k<m;k++)
                {                                    
                    int x=a[j-1][k]; 
                    a[j-1][k]=a[j][k]; 
                    a[j][k]=x;
                }
            }
        }
    }
}
////////////////////////////////////////////////////// 
int MaxInRows(int **a,int k,int m)
{
    int max=a[k][0];
    for(int i=1;i<m;i++) if(max<a[k][i]) max=a[k][i];
    return max;
}
////////////////////////////////////////////////////// 
void PrintMatrix(int **a,int n,int m,char *str)
{
    cout<<str<<endl;
    for(int i=0; i<n;i++) 
    {
        for(int j=0;j<m;j++) cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2011, 12:45

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

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

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

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

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


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

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

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