Salve a tutti, sto scrivendo un codice che chiede: data una matrice bidimensionale n*n, scambiare le righe affinché nella diagonale non ci siano zeri. Ho fatto varie prove, ma purtroppo riesco a trovare sempre la matrice che manda in loop il programma.
Il ciclo su cui si basa il mio codice é questo:
codice:
double *tempA; 
do{
FOUND = 0;
    for(i=0;i<N;i++){ //N dimensione matrice quadrata
        if (A[i][i] == 0){
            FOUND = 1;
            for(j=0;j<N;j++){
                if(A[i][i] != A[j][i]){
                     tempA = A[i];
                    A[i]= A[j];
                    A[j] = tempA;    
                    }    
                }
            }
        }
}while(FOUND);
In pratica trova lo zero nella diagonale e lo scambia con una riga che non ha lo zero nella stessa posizione di colonna. Il procedimento é un po' troppo casuale.
Ovviamente non chiedo di farmi il codice, chiedo delle dritte e dei consigli per continuare sulla strada che ho preso, oppure devo cambiare proprio strategia. Grazie mille!