Salve a tutti,
Ho iniziato recentemente il corso in statistica e big data in Unimercatorum.
Devo dare l'esame in Programmazione e ho iniziato dal C.
Scrivendo questo codice con il for al posto del while sintetizzandolo
(che con il while funziona perfettamente assegnando le variabili ad inizio codice)
riscontro un errore logico:
ammette solo 5 risultati nel ciclo anziche' 10,vi allego il codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int risultato;
int promossi;
int bocciati;
int studenti;
for (promossi = 0,bocciati = 0,studenti = 1;studenti <= 10; studenti = studenti +1){
printf("Inserisci il risultato: Promosso=1 , Bocciato =2\n");
scanf("%d" , &risultato);
if (risultato == 1){
promossi = promossi + 1;
}
else if (risultato == 2)
{
bocciati = bocciati + 1;
}
else
printf("Il risultato non e' valido:\n");
studenti = studenti + 1;
}
{
printf("Studenti promossi:%d\n" , promossi);
printf("Studenti bocciati:%d\n" , bocciati);
}
if (promossi >= 8 )
printf("Si devono aumentare le tasse.\n");
else
printf("Non si devono aumentare le tasse.\n");
return 0;
}
Dichiarando studenti =20 nella linea for ottengo invece il calcolo su 10 studenti.
Vorrei gentilmente consigli su come ottimizzare il mio codice in generale e chiarimenti su questa ambiguità.
Grazie