Originariamente inviato da c0der
Continui ad avere problemi con le dimensioni degli array, quando le passi come parametri di una funzione.
Allora:
double a => una variabile a di tipo double
double *a => un array a 1 dimensione di variabile double, lo usi cosi a[0], a[1]
double **a => un array a 2 dimensioni di variabili double, lo usi cosi a[0][0], a[0][1]
Come vedi nel prototipo l'hai passato a 2 dimensioni:
void scambia( double **a, int dim, int nrighe)
Poi invece lo usi come avesse solo 1 dimensione:
a[i+k]
e se scrivessi quindi:
codice:
void scambia( double **a, int dim, int nrighe, int ncolonne) {
int i,j,k,temp;
for(i=1; i<nrighe; i++) {
for(j=1; j<ncolonne; j++)
while (a[i+k]<a[dim-k]) {
for(k=0; k<dim; k++)
temp=a[i+k][j];
a[i+k][j]=a[dim-k][j];
a[dim-k][j]=temp;
}
}
}
cioè tolgo la swap e metto tutto dentro la scambia
così come ti sembra?