Questo è per quanto riguarda un array monodimensionale (funziona correttamente):

codice:
	int app;
	int scambio=1;
	while (i<n-1 && scambio)
	{
	       {
			scambio = 0;
			for (j=0; j<n-(i+1);j++)
				{
					if (a[j]>a[j+1])
					{
					app=a[j];
					a[j]=a[j+1];
					a[j+1]=app;
					scambio=1;
					}
				}
			i++;
		}
	}
Perchè non funziona questo per la matrice bidimensionale?

codice:
	int app;
	int scambio=1;
	while (i<n-1 && scambio)
	{
		for (i=0;i<n;i++)
		{
			scambio = 0;
			for (j=0; j<m-(i+1);j++)
				{
					if (a[i][j]>a[i][j+1])
					{
					app=a[i][j];
					a[i][j]=a[i][j+1];
					a[i][j+1]=app;
					scambio=1;
					}
				}
			i++;
		}
	}