62 lines
2.7 KiB
C#
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
|
|
}
|
|
}
|