/*
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;
}
}
}
}
}