using System.Net.Http.Headers; namespace ripasso3; class Program { const int minNumero = 0; const int maxNumero = 100; static void Main(string[] args) { int scelta; int[] array = null; //Tecnica Segreta™ dei puntatori bool opzione1 = false; do { Console.Clear(); Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Crea un'insieme di numeri tra " + minNumero + " e " + maxNumero); Console.WriteLine("2. Mostra il maggiore e il minore"); Console.WriteLine("3. Calcolo media"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: Console.Clear(); break; case 1: opzione1 = false; Console.Clear(); array = CreaArray(); StampaArray(array); opzione1 = true; Pausa(); break; case 2: Console.Clear(); if(opzione1){ MaxMin(array); } else{ Console.WriteLine("È necessario eseguire l'opzione 1 prima di poter eseguire questa"); } Pausa(); break; case 3: Console.Clear(); Media(); Pausa(); break; default: Console.WriteLine("Scelta non valida"); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere invio per continuare. . ."); Console.ReadLine(); Console.Clear(); } static int[] CreaArray() { int dimensione, i = 0; string input; do { //richiesta dimensione array Console.Write("Quanti numeri vuoi inserire? "); dimensione = Convert.ToInt32(Console.ReadLine()); if (dimensione <= 0) { Console.WriteLine("Devi inserire almeno un numero"); } } while (dimensione <= 0); int[] ritorno = new int[dimensione]; for (i = 0; i < dimensione; i++) {//creo un valore di default, così la sequenza non deve essere per forza completa ritorno[i] = -1; } i = 0;//reset contatore do{//richiesta numeri da mettere nell'array Console.Clear(); Console.WriteLine("Hai ancora " + (dimensione - i) + " numeri da inserire"); Console.Write("Inserire un numero ([q] per uscire): "); input=Console.ReadLine(); //non posso ancora fare il catch dell'eccezione se viene inserito un qualcosa che non sia un numero o q if(input!="q"){ if(Convert.ToInt32(input) >= minNumero && Convert.ToInt32(input) <= maxNumero){ ritorno[i]=Convert.ToInt32(input); i++; } else { Console.WriteLine("Il numero deve essere compreso tra 0 e 100, estremi inclusi"); Pausa(); } } } while(input!="q" && i temp){ max = p_array[i]; } } temp = p_array[i]; } temp = maxNumero;//reset della variabile temporanea di appoggio, così che qualsiasi valore sia minore di questo for (int i = 0; i < p_array.Length; i++){ if (p_array[i] != -1){ if(p_array[i] == minNumero){//se ho già trovato il minimo valore inseribile min = p_array[i]; break;//interrompo subito la ricerca } if (p_array[i] < temp){ min = p_array[i]; } } temp = p_array[i]; } Console.WriteLine("Il valore minimo è " + min + " mentre il valore massimo è " + max); } static void Media(){ int input, temp = 0, i = 1; do { Console.Write("Inserire un numero (numero negativo per uscire): "); input = Convert.ToInt32(Console.ReadLine()); temp = temp + input; //somma di tutti i valori inseriti if (i>1 && input>0){ Console.WriteLine("Media: " + (temp / i)); } i++; } while (input>0); } }