Salve ragazzuoli, mi sto cimentando nella programmazione in c e in particolare mi sto allenando con i vettori. In questo caso ho avuto la pessima idea di creare un registro per i voti utilizzando un menu ma il problema è tornare indietro al menu premendo 0 nella prima opzione dopo aver inserito i voti. Vi sarei grato se riusciste a trovare una soluzione. thankssss
Ecco il codice in c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int Voti = 0, NumVoti = 0, VotoMax, VotoMin, Input, VotoIn [19], c1, c2, c3;
float MediaVoti;
for (;;)
{
printf (" Digita un numero e premi invio\n");
printf (" 1) Inserisci i voti nel vettore\n");
printf (" 2) Stampa del numero di voti inseriti nel vettore\n");
printf (" 3) Stampa di tutti i voti inseriti nel vettore\n");
printf (" 4) Stampa della media dei voti inseriti\n");
printf (" 5) Stampa del voto minimo\n");
printf (" 6) Stampa del voto massimo\n");
printf (" 9) fine del programma\n");
scanf ("%d", &Input);
switch (Input)
{
case 1:
do
{
NumVoti++;
printf ("Inserisci un voto da 1 a 10. Per uscire digita 0.\n");
scanf ("%d", &VotoIn[NumVoti]);
Voti = Voti + VotoIn[NumVoti];
} while (VotoIn[NumVoti] != 0 || NumVoti != 19);
case 2:
printf ("Sono stati inseriti %d voti\n", NumVoti);
break;
case 3:
for (c1 = 0; c1 < 20; c1++)
{
printf ("%d\n", VotoIn[c1]);
}
break;
case 4:
MediaVoti = Voti / NumVoti;
printf ("La media dei voti è %d\n", MediaVoti);
break;
case 5:
VotoMin = VotoIn[0];
for (c2 = 0; c2 < 20; c2++)
{
if (VotoMin < VotoIn[c2])
{
VotoMin = VotoIn;
}
}
printf ("Il voto minimo è %d\n", VotoMin);
break;
case 6:
VotoMax = VotoIn[0];
for (c3 = 0; c3 < 20; c3++)
{
if (VotoMax > VotoIn[c3])
{
VotoMax = VotoIn;
}
}
printf ("Il voto massimo è %d\n", VotoMax);
break;
case 9:
return 0;
break;
default:
printf ("Opzione inesistente\n");
break;
}
}
system ("pause");
return 0;
}