Ritorna alla pagina del corso.
Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.
01: #include<stdio.h>
02: #include<stdlib.h>
03:
04: int main(int argc, char **argv){
05:
06: printf("Inserisci un ammontare in euro: ");
07: float somma;
08: scanf("%f", &somma);
09:
10: printf("L'ammontare %.2f e' realizzabile usando\n", somma);
11:
12: int euro2 = somma / 2;
13: somma = somma - 2 * euro2;
14: printf("%3d monete da 2 eur\n", euro2);
15:
16: int euro1 = somma;
17: somma = somma - euro1;
18: printf("%3d monete da 1 eur\n", euro1);
19:
20: //FIXME invece di usare i numeri a virgola mobile e rischiare con arrotondamenti, uso solo numeri interi
21:
22: int isomma = somma * 100 + .5; // a cosa serve il +.5?
23:
24: int euroc50 = isomma / 50;
25: isomma = isomma - euroc50 * 50;
26: printf("%3d monete da 50 eurocent\n", euroc50);
27:
28: int euroc20 = isomma / 20;
29: isomma = isomma - euroc20 * 20;
30: printf("%3d monete da 20 eurocent\n", euroc20);
31:
32: int euroc10 = isomma / 10;
33: isomma = isomma - euroc10 * 10;
34: printf("%3d monete da 10 eurocent\n", euroc10);
35:
36: int euroc05 = isomma / 5;
37: isomma = isomma - euroc10 * 5;
38: printf("%3d monete da 5 eurocent\n", euroc05);
39:
40: int euroc02 = isomma / 2;
41: isomma = isomma - euroc02 * 2;
42: printf("%3d monete da 2 eurocent\n", euroc02);
43:
44: int euroc01 = isomma;
45: printf("%3d monete da 1 eurocen\n", euroc01);
46:
47: printf("Ovvero da un totale di %d monete\n", euro2 + euro1 + euroc50 + euroc20 + euroc10 + euroc05 + euroc02 + euroc01);
48:
49:
50: return 0;
51: }
52:
53: // provate con 7.87 -> c'e' un errore... o meglio, i calcoli sembrano tutti giusti ma cosa succede?
54: // come posso ovviare
55:
56: