/* Esercizio n° 19 pag. 243; Funzionamento: Data da input la grandezza della matrice, la popola (sempre con valori da input) e controlla quali valori sono sulla diagonale e li scrive in modo ordinato ^^. */ using System; class usoMatrici1 { static void Main() { int n, blank, limb=1, i=0, j=0; //chiede le future dimensioni della radice quadratica (righe == colonne) do { Console.Write("Inserisci la dimensione della matrice quadratica: "); n = Convert.ToInt32(Console.ReadLine()); if (n < 0 || n > 10) { Console.WriteLine("Errore creazione matrice; dev'essere minore o uguale a 10."); } } while (n < 0 || n > 10); //inizializza la matrice int [ , ] matrix = new int [n,n]; //popola la matrice for (i = 0; i < n; i++) { for (j = 0; j < n ; j++) { Console.Write("Inserisci un dato da inserire nella matrice: "); matrix[i,j] = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(""); } } //visualizza la matrice normalmente Console.WriteLine("Contenuto matrice: \n\n"); Console.Write("\t"); for (i = 0; i < n; i++) { for (j=0; j < n; j++) { Console.Write(" {0}", matrix[i,j]); } Console.Write("\n\t"); } //Visualizza solo la diagonale principale ( quando l'indice di colonna è = a quello di riga) Console.WriteLine("\nDiagonale Principale:\n"); Console.Write("\t"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { //controlla se gli indici sono uguali; if (matrix[i,j]==matrix[j,i]) { for (blank = 0; blank < limb; blank++) { Console.Write(" "); } Console.Write("{0}\n\t", matrix [i,j]); limb+=2; } } } } }