e se scrivessi quindi: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]
cioè tolgo la swap e metto tutto dentro la scambiacodice: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; } } }
così come ti sembra?

Rispondi quotando