// ORDENA UNA MATRIZ UTILIZANDO EL ALGORITMO DE BURBUJA #define DIM 3 // ATENCION, si el puntero no tiene valor darA "SEGMENTATION FAULT" // Ordena los datos de una matriz utilizando el mEtodo de burbuja main() { int A[DIM][DIM]; PideDatos(A); printf("Matriz no ordenada...\n"); Muestra(A); Ordena(A); printf("Matriz ordenada...\n"); Muestra(A); } Ordena(int A[][DIM]) { int r, r1, c, c1, c_c; for (r = 0; r < DIM; r++) for (c = 0; c < DIM; c++) { c_c = c; for (r1 = r; r1 < DIM; r1++) { for (c1 = c_c; c1 < DIM; c1++) if (A[r][c] > A[r1][c1]) swap(&A[r][c], &A[r1][c1]); c_c = 0; } } } swap(int *x, int *y) { int z = *y; *y = *x; *x = z; } Muestra(int A[][DIM]) { int r, c; for (r = 0; r < DIM; r++) { printf("\n"); for (c = 0; c < DIM; c++) printf("\t%d", A[r][c]); } printf("\n"); } PideDatos(int A[][DIM]) { int r, c; for (r = 0; r < DIM; r++) for (c = 0; c < DIM; c++) { printf("A[%d][%d]= ", r, c); scanf("%d", &A[r][c]); } }