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:
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.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);
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!