SCAMBIO DIAGONALI MATRICE QUADRATA IN C++
Salve a tutti..devo scrivere un codice che mi permetta di scambiare in una matrice quadrata le diagonali.
sono sicuro che qualcuno è in grado di aiutarmi..aspetto notizie!!
GRAZIE MILLE
sono sicuro che qualcuno è in grado di aiutarmi..aspetto notizie!!
GRAZIE MILLE
Risposte
È un compito? Devi comunque semplicemente iterare su tutti gli elementi delle due diagonali e scambiare tra di loro i corrispondenti valori. La diagonale principale corrisponde ad elementi di indici M e quella secondaria ad elementi di indici M[n-1-i] (nota che in C++ si parte da 0 con gli indici, se gli indici partissero da 1 gli elementi della diagonale secondaria avrebbero indici differenti).
io farei una funzione di questo tipo:
void scambia(int A[][N])
{
for(int i = 0; i < N; i++)
{
A = A[N - 1 - i];
A[N - 1 - i] = A;
}
}
void scambia(int A[][N])
{
for(int i = 0; i < N; i++)
{
A = A[N - 1 - i];
A[N - 1 - i] = A;
}
}
Riuzaki, il tuo codice non funziona. Per scambiare il contenuto di due variabili non è infatti sufficiente scrivere le due righe che hai scritto, ma devi usare una ulteriore variabile:
Ci sarebbe anche un metodo che fa a meno della variabile temporanea, ma non offre alcun vantaggio in pratica (in piattaforme in cui molto probabilmente lavorerete).
P.S. Usa il tag code.
void scambia(int a[][N]) { for (int i = 0; i < N; ++i) { int tmp = a[i][i]; a[i][i] = a[i][N - 1 - i]; a[i][N - 1 - i] = tmp; } }
Ci sarebbe anche un metodo che fa a meno della variabile temporanea, ma non offre alcun vantaggio in pratica (in piattaforme in cui molto probabilmente lavorerete).
P.S. Usa il tag code.
hai assolutamente ragione ho dimenticato il temp

grazie mille a entrambi...adesso ho letto le vostre risposte e il programma ovviamente è perfettamente riuscito
