Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 6 Septiembre 2016, 01:06 am



Título: Ordenar una matriz en C?
Publicado por: palacio29 en 6 Septiembre 2016, 01:06 am
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

Código
  1. void ordenar(int a[], int longitud)
  2. {
  3. int i, j, aux;
  4. for (i = 0; i < longitud; i++)
  5. {
  6. for (j = i + 1; j < longitud; j++)
  7. {
  8. if (a[j] < a[i])
  9. {
  10. aux = a[i]; a[i] =
  11. a[j]; a[j] = aux;
  12. }
  13. }
  14. }
  15. }

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void CARGA (int arreglo[3][3]);
  5. void IMPRIMIR(int arreglo[3][3]);
  6. void MODIFICAR(int arreglo[3][3]);
  7.  
  8. int main()
  9. {
  10.    srand(time(NULL));
  11.    int arreglo[3][3],arreglin[3];
  12.    printf ("La matriz sin modificar es : \n");
  13.    CARGA(arreglo);
  14.    printf ("\n");
  15.    IMPRIMIR(arreglo);
  16. printf ("\n");
  17. MODIFICAR(arreglo);
  18.  
  19.  
  20.  
  21.    return 0;
  22. }
  23. void CARGA (int arreglo[3][3])
  24. {
  25.    int fila=0,columna=0;
  26.  
  27.    while (fila<3)
  28.    {
  29.        arreglo[fila][columna]=rand()%11+1;
  30.        columna++;
  31.        arreglo[fila][columna]=rand()%11+1;
  32.        columna++;
  33.        arreglo[fila][columna]=rand()%11+1;
  34.        columna++;
  35.        fila++;
  36.        columna=0;
  37.    }
  38. }
  39.  
  40. void IMPRIMIR(int arreglo[3][3])
  41. {
  42. int fila=0,columna=0;
  43.  
  44. for (fila=0;fila<3;fila++)
  45. {
  46.     for (columna=0;columna<3;columna++)
  47.     {
  48.         printf (" %d ",arreglo[fila][columna]);
  49.     }
  50.     printf ("\n");
  51. }
  52.  
  53.  
  54.  
  55.  
  56. }
  57.  
  58. void MODIFICAR(int arreglo[3][3])
  59. {
  60.    int fila=0,columna=0;
  61.  
  62.    for (fila=0;fila<3;fila++)
  63.    {
  64.        for (columna=fila+1;columna<3;columna++)
  65.        {
  66.  
  67.  
  68.  
  69.  
  70.        }
  71.    }
  72. }
  73.  
  74.