Salve,
stavo facendo un esercizio e la prima parte del codice è piuttosto semplice eccola:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
cout << "Inserire i voti, separati da spazi e terminanti con zero:" << endl;
const int MIN = 18, MAX = 33;
const double FATTORE = 100;
int min = 33, max = 18, voto, quanti = 0;
double media = 0;
do {
cin >> voto;
if (voto == 0)
break;
if (voto < min)
min = voto;
if (voto > max)
max = voto;
media = media + voto;
quanti = quanti + 1;
} while (voto != 0);
media = media / quanti;
cout << "voto minimo:\t" << min << endl
<< "voto massimo:\t" << max << endl
<< "voto medio:\t" << (int) (media * FATTORE + 0.5) / FATTORE;
però non ho capito come funziona la parte dello switch che ho spudoratamente copiato
switch ((int) ((media - MIN) / (MAX - MIN)*5)) {
case 0: cout << "\t(sufficiente)";
break;
case 1: cout << "\t(discreto)";
break;
case 2: cout << "\t(buono)";
break;
case 3: cout << "\t(distinto)";
break;
case 4: cout << "\t(ottimo)";
break;
default: cout << "\t(eccellente)";
}
cout << endl;
return 0;
}
come fa a sapere quando è un caso o quando è un altro?? in altri esercizi ho un listato dove mi identifico con i casi ad esempio i mesi che hanno 31 giorni... basta scrivere:
codice non dell'esercizio
switch(mesi){
case 1: case 3: case 5: ..........
cout << quello ke vuoi;
break;
...........
}
ma nel codice sopra non riesco a capire da dove prende la divisione per capire se è sufficiente, buono o altro...
grazie