/*
Esercizio n° -- pag. --;
Funzionamento:
Date da ingresso le grandezze di una matrice, le si popola con valori
compresi tra 10 e -10, poi si restituisce la somma dei valori di ogni riga
e quelli di ogni colonna.
*/
using System;
class RigheColonneMatrice
{
static void Main()
{
int righe, colonne, h, k, totRiga = 0, totColonna = 0, totDiag = 0, grandeTot = 0;
// chiedo quante righe e quante colonne deve avere la matrice
// max 20
do
{
Console.Write("Quante colonne deve avere la matrice? max 20 => ");
colonne = Convert.ToInt32(Console.ReadLine());
}
while (colonne < 0 || colonne > 20);
do
{
Console.Write("\nQuante righe deve avere la matrice? max 20 => ");
righe = Convert.ToInt32(Console.ReadLine());
}
while (righe < 0 || righe > 20);
//inizializzo la matrice
int [ , ] matrox = new int [righe, colonne];
//la popolo con elementi < di zero altrimenti si sfasa e diventa brutta
for (h = 0; h < righe; h++)
{
for (k = 0; k < colonne; k++)
{
do
{
Console.Write("Nuovo elemento matrice: ");
matrox [h,k] = Convert.ToInt32(Console.ReadLine());
}
while (matrox [h,k] > 9 || matrox [h,k] < -9);
}
}
//la visualizzo per intero ed effettuo la somma di ogni valore di ogni riga;
Console.WriteLine("\nVisualizzazione Matrice: \n");
for (h = 0; h < righe; h++)
{
Console.Write("\t");
for (k = 0; k < colonne; k++)
{
Console.Write(" {0}", matrox[h,k]);
totRiga += matrox[h,k];
// se la matrice è quadratica (righe=colonne) restituisce anche la somma delle diagonali
if (h==k && righe == colonne)
{
totDiag += matrox[h,k];
}
}
//alla fine della riga scrivo la somma, poi vado a capo
Console.Write("\t{0}\n", totRiga);
//poi uso il valore per avere il totale
grandeTot += totRiga;
totRiga = 0;
}
//faccio la somma di ogni elemento per ogni colonna;
Console.Write("\n\n\t");
for (h = 0; h < colonne; h++)
{
for (k = 0; k < righe; k++)
{
totColonna += matrox[k,h];
}
// e lo scrivo sotto la relativa colonna
Console.Write(" {0}",totColonna);
//poi uso il valore per avere il totale
grandeTot += totColonna;
totColonna = 0;
}
// se la matrice è quadratica
if (righe == colonne)
{
Console.Write("\t{0}\n\n \tTermine Programma, matrice quadratica visualizzata.\n\n", totDiag);
}
else
{
Console.Write("\t{0}\n\n \tTermine Programma, matrice visualizzata.\n\n", grandeTot);
}
Console.Read();
}
}