Dev - C++ - ordenamiento de matrices

 
Vista:

ordenamiento de matrices

Publicado por Martin (4 intervenciones) el 17/10/2019 04:37:30
buenas, necesito ordenar una matriz de 5 filas x 4 columnas en orden ascendente segun los valores de la columna 4 para un trabajo de la facultad y se me complico. dejo a continuacion el codigo... en pocas palabras, la ordena de una forma desordenada.

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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int m[5][4]={5,3,6,76,8,5,3,2,45,67,8,9,0,8,7,6,65,78,23,89},i,j,k,a,b,aux;
 
    for(a=0;a<5;a++)
    {
        printf("\n");
        for(b=0;b<4;b++)
        {
            printf("%4d",m[a][b]);
        }
    }
 
    for(i=0;i<4;i++)
    {
        for(j=i+1;j<5;j++)
        {
            if(m[i][1]>m[j][1])
            {
                for(k=0;k<4;k++)
                {
                    aux=m[i][k];
                    m[i][k]=m[j][k];
                    m[j][k]=aux;
                }
            }
        }
    }
    printf("\n\n");
    for(a=0;a<5;a++)
    {
        printf("\n");
        for(b=0;b<4;b++)
        {
            printf("%4d",m[a][b]);
        }
    }
 
 
    printf("\n\n");
    return 0;
}


se que no es lo mas eficiente que se puede hacer, pero solo quiero que funcione, toda ayuda es buena
mi email: martinrosolino@gmail.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 2.296
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ordenamiento de matrices

Publicado por Alfil (620 intervenciones) el 17/10/2019 08:14:39
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
const int fil = 5;
const int col = 4;
 
int main()
{
    int temp = 0;
    int matriz[fil][col];
 
    cout << "\nIntroduzca los datos de la matriz:"
         << "\nDimensiones de la matriz: "
         << fil << " x " << col << "\n\n";
    for( int i = 0; i < fil; i++ ){
        for( int j = 0; j < col; j++ ) {
             cout << "[" << i << "][" << j << "]: ";
             cin >> matriz[i][j];
        }
    }
 
    cout << "\nDatos de la matriz:\n";
    for( int i = 0; i < fil; i++ ) {
        cout << "\n| ";
        for(int j = 0; j < col; j++ ) {
            cout << setw(4) << matriz[i][j] << " ";
        }
        cout << " |";
    }
    cout << endl;
 
     for( int i = 0; i < fil; i++ ) {
        for( int j = 0; j < col; j++ ) {
            for(int x = 0; x < fil; x++ ) {
                for( int y = 0; y < col; y++ ) {
 
                    if( matriz[i][j] > matriz[x][y]) {
                        temp = matriz[i][j];
                        matriz[i][j] = matriz[x][y];
                        matriz[x][y] = temp;
                    }
                }
            }
         }
    }
 
    cout << "\nDatos de la matriz ordenada:\n";
    for( int i = 0; i < fil; i++ ) {
        cout << "\n| ";
        for(int j = 0; j < col; j++ ) {
            cout << setw(4) << matriz[i][j] << " ";
        }
        cout << " |";
    }
    cout << endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ordenamiento de matrices

Publicado por Martín (4 intervenciones) el 17/10/2019 16:17:52
sabes como puedo pasar tu código a lenguaje c?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 2.296
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ordenamiento de matrices

Publicado por Alfil (620 intervenciones) el 17/10/2019 16:37:11
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
#include <stdio.h>
 
using namespace std;
 
#define fil 5
#define col 4
 
int main()
{
    int temp = 0;
    int matriz[fil][col];
 
    printf( "\nIntroduzca los datos de la matriz:" );
    printf( "\nDimensiones de la matriz: %d x %d\n\n", fil, col );
 
    for( int i = 0; i < fil; i++ ){
        for( int j = 0; j < col; j++ ) {
             printf( "[%d][%d]: ", i, j );
             scanf( "%d", &matriz[i][j] );
        }
    }
 
    printf( "\nDatos de la matriz:\n" );
    for( int i = 0; i < fil; i++ ) {
        printf( "\n| " );
        for(int j = 0; j < col; j++ ) {
            printf( "%3i ", matriz[i][j] );
        }
        printf( " |" );
    }
    printf( "\n" );
 
     for( int i = 0; i < fil; i++ ) {
        for( int j = 0; j < col; j++ ) {
            for(int x = 0; x < fil; x++ ) {
                for( int y = 0; y < col; y++ ) {
 
                    if( matriz[i][j] > matriz[x][y]) {
                        temp = matriz[i][j];
                        matriz[i][j] = matriz[x][y];
                        matriz[x][y] = temp;
                    }
                }
            }
         }
    }
 
    printf( "\nDatos de la matriz ordenada:\n" );
    for( int i = 0; i < fil; i++ ) {
        printf( "\n| " );
        for(int j = 0; j < col; j++ ) {
            printf( "%3i ", matriz[i][j] );
        }
        printf( " |" );
    }
    printf( "\n" );
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ordenamiento de matrices

Publicado por Martín (4 intervenciones) el 17/10/2019 18:26:13
MUCHÍSIMAS GRACIAS!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ordenamiento de matrices

Publicado por Martín (4 intervenciones) el 17/10/2019 20:11:17
Necesitaria que ordene las filas enteras segun los datos de la columna 4, es posible eso? es decir, que intercambie las filas enteras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 2.296
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ordenamiento de matrices

Publicado por Alfil (620 intervenciones) el 17/10/2019 20:39:27
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
#include <stdio.h>
 
#define fil 5
#define col 4
 
int main()
{
    int matriz[fil][col];
 
    printf( "\nIntroduzca los datos de la matriz:" );
    printf( "\nDimensiones de la matriz: %d x %d\n\n", fil, col );
 
    for( int i = 0; i < fil; i++ ){
        for( int j = 0; j < col; j++ ) {
             printf( "[%d][%d]: ", i, j );
             scanf( "%d", &matriz[i][j] );
        }
    }
 
    printf( "\nDatos de la matriz:\n" );
    for( int i = 0; i < fil; i++ ) {
        printf( "\n| " );
        for(int j = 0; j < col; j++ ) {
            printf( "%3i ", matriz[i][j] );
        }
        printf( " |" );
    }
    printf( "\n" );
 
    int temp[4];
    int valor;
    int j;
 
    for( int i = 1; i < fil; i++ ) {
 
        valor = matriz[i][col-1];
        temp[0] = matriz[i][0];
        temp[1] = matriz[i][1];
        temp[2] = matriz[i][2];
        temp[3] = matriz[i][3];
 
        j = i;
        while( j > 0 && valor < matriz[j-1][col-1] ) {
            matriz[j][0] = matriz[j-1][0];
            matriz[j][1] = matriz[j-1][1];
            matriz[j][2] = matriz[j-1][2];
            matriz[j][3] = matriz[j-1][3];
            j--;
        }
        matriz[j][0] = temp[0];
        matriz[j][1] = temp[1];
        matriz[j][2] = temp[2];
        matriz[j][3] = temp[3];
    }
 
 
    printf( "\nDatos de la matriz ordenada:\n" );
    for( int i = 0; i < fil; i++ ) {
        printf( "\n| " );
        for(int j = 0; j < col; j++ ) {
            printf( "%3i ", matriz[i][j] );
 
        }
        printf( " |" );
    }
    printf( "\n" );
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar