Ordenar una matriz en C?

Iniciado por palacio29, 6 Septiembre 2016, 01:06 AM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Tengo un problema con este ejercicio. Me piden ordenar una matriz de enteros, de menor a mayor usando burbujeo.
Lo que hago es realizar la carga aleatoria de la matriz, imprimirla y luego debo imprimir la matriz nuevamente pero modificada.

La cuestion es que me dan el siguiente codigo para hacer el burbujeo pero al ser bidimensional no le encuentro la logica, no puedo reconocer en este codigo de burbujeo la forma bidimensional

void ordenar(int a[], int longitud)
{
int i, j, aux;
for (i = 0; i < longitud; i++)
{
for (j = i + 1; j < longitud; j++)
{
if (a[j] < a[i])
{
aux = a[i]; a[i] =
a[j]; a[j] = aux;
}
}
}
}


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void CARGA (int arreglo[3][3]);
void IMPRIMIR(int arreglo[3][3]);
void MODIFICAR(int arreglo[3][3]);

int main()
{
    srand(time(NULL));
    int arreglo[3][3],arreglin[3];
    printf ("La matriz sin modificar es : \n");
    CARGA(arreglo);
    printf ("\n");
    IMPRIMIR(arreglo);
printf ("\n");
MODIFICAR(arreglo);



    return 0;
}
void CARGA (int arreglo[3][3])
{
    int fila=0,columna=0;

    while (fila<3)
    {
        arreglo[fila][columna]=rand()%11+1;
        columna++;
        arreglo[fila][columna]=rand()%11+1;
        columna++;
        arreglo[fila][columna]=rand()%11+1;
        columna++;
        fila++;
        columna=0;
    }
}

void IMPRIMIR(int arreglo[3][3])
{
int fila=0,columna=0;

for (fila=0;fila<3;fila++)
{
     for (columna=0;columna<3;columna++)
     {
         printf (" %d ",arreglo[fila][columna]);
     }
     printf ("\n");
}




}

void MODIFICAR(int arreglo[3][3])
{
    int fila=0,columna=0;
   
    for (fila=0;fila<3;fila++)
    {
        for (columna=fila+1;columna<3;columna++)
        {
           
           
           
           
        }
    }
}