average_countdown/Program.cs
2024-11-08 15:36:56 +01:00

62 lines
2.7 KiB
C#

namespace average_countdown;
class Program
{
static void Main(string[] args)
{
//dichiarazione e inizializzazione variabili
ulong num, i, j;
double numMedia, media, somma;
string scelta;
const string valoreAccettato1="S";
const string valoreAccettato2="s";
const string valoreAccettato3="N";
const string valoreAccettato4="n";
const string valoreAccettato5="Y";
const string valoreAccettato6="y";
const string valoreAccettato7="";
do{
//input e input sanitization
do{
Console.Write("Inserire un numero per iniziare il conto alla rovescia: ");
num=Convert.ToUInt64(Console.ReadLine());
if(num<=0){
Console.WriteLine("Il numero non può essere né negativo né zero");
}
}
while(num<=0);
//stampa dei numeri
for(i=num;i>0;i--){
Console.WriteLine(i);
}
Console.WriteLine("0"); //hack per avere lo zero a fine stampa, visto che con il tipo int64 non posso verificare che sia maggiore di -1
Console.WriteLine("Inserire una serie di numeri per calcolarne la media");
j=0; //reset del contatore
somma=0; //reset della somma
do{
//input e input sanitization
do{
Console.Write("Inserire un numero: ");
numMedia=Convert.ToUInt64(Console.ReadLine());
if(numMedia<0){
Console.WriteLine("Il numero non può essere negativo");
}
}
while(numMedia<0);
somma=numMedia+somma; //calcolo somma
j++; //conteggio numeri inseriti fin'ora
}
while(numMedia!=0);
media=somma/(j-1); //calcolo media. j-1 serve altrimenti viene conteggiato l'inserimento dello zero e viene una media sbagliata
Console.WriteLine("La media è " +media);
//richiesta di reiterare
do{
Console.Write("Ripetere il countdown e la media? [S/n] ");
scelta=Console.ReadLine();
}
while(scelta!=valoreAccettato1 && scelta!=valoreAccettato2 && scelta!=valoreAccettato3 && scelta!=valoreAccettato4 && scelta!=valoreAccettato5 && scelta!=valoreAccettato6 && scelta!=valoreAccettato7); //Riduzione dell'input accettato.
}
while(scelta!=valoreAccettato3 && scelta!=valoreAccettato4); //Solo con n o N viene interrotta l'esecuzione, quindi se non viene inserito nulla il programma ricomincia
}
}