#include <stdio.h>
#include <stdlib.h>

int** ordena(int **v, int tam) {
    int i, j,aux;
    int swap[3];
    for (i = 0; i < tam-1; i++) {
        aux = i;
        for (j = (i+1); j < tam; j++) {
            if(v[j][1] < v[aux][1]) {
                aux = j;
            }
        }
        if (i != aux) {
            swap[0] = v[i][0];
            swap[1] = v[i][1];
            swap[2] = v[i][2];
            v[i][0] = v[aux][0];
            v[i][1] = v[aux][1];
            v[i][2] = v[aux][2];
            v[aux][0] = swap[0];
            v[aux][1] = swap[1];
            v[aux][2] = swap[2];
        }
    }
    return v;
}

int main() {

    int **array2d = malloc(sizeof(*array2d) * 4);
    array2d[0] = malloc(sizeof(*array2d[0]) * 3);
    array2d[1] = malloc(sizeof(*array2d[0]) * 3);
    array2d[2] = malloc(sizeof(*array2d[0]) * 3);
    array2d[3] = malloc(sizeof(*array2d[0]) * 3);

    array2d[0][0] = 2;
    array2d[0][1] = 3;
    array2d[0][2] = 4;

    array2d[1][0] = 3;
    array2d[1][1] = 7;
    array2d[1][2] = 9;

    array2d[2][0] = 1;
    array2d[2][1] = 1;
    array2d[2][2] = 1;

    array2d[3][0] = 5;
    array2d[3][1] = 2;
    array2d[3][2] = 4;

    ordena(array2d, 4);

    int i,j;
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 3; ++j) {
            printf("%d ", array2d[i][j]);
        }

        printf("\n");
    }

    return 0;
}
