El ordenamiento de burbuja consiste en comparar cada valor con todos los que le siguen, si es mayor a uno de los siguientes, se realiza el intercambio y se continúa con las comparaciones.
En tu algoritmo, estas comparando cada valor con su contiguo y no con todos los que le siguen, por lo que si tenes los siguientes valores:
1
7
9
0
4
10
7
Te van a quedar ordenados de la siguiente manera:
1
7
0
4
5
9
7
10
Ahora, tu problema de que te imprima una dirección de memoria es porque el
for que se maneja con la variable j recorre el arreglo completo con el ultimo valor inclusive, por lo que en la siguiente linea, en la ultima iteracion
j va a tener el valor mas grande que pueda y que será la cantidad de las columnas. Entonces,
matriz[i][j+1] está referenciando a una posición fuera del arreglo:
Entonces, deberías de modificar tu código en la parte del ordenamiento:
Código C:
Ver originalint k= 0;//nueva variable
for( i ; i <FILAS; i++)
{
j = 0;
//j itera desde la primera columna a la anteultima
for (j ; j < COLUMNAS - 1; j++)
{
//k itera desde la columna siguiente a la de j hasta la ultima
k= j+1;
for (k; k<COLUMNAS; k++){
if (matriz1[i][j] > matriz1[i][k])
{
aux= matriz1[i][j];
matriz1[i][j] = matriz1[i][k];
matriz1[i][k] = aux;
}
}
}
}
Creo que ahi debería funcionar, no lo he probado
Ordenamiento burbuja wikipedia
Saludos. Espero que funcione y que me hayas entendido
.