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: /*
02: 8 leggere da tastiera una cifra in EUR. Considerando solo le monete
03: in EUR (2 EUR, 1 EUR, 50, 20, 10, 5, 2 e 1 eurocent). Calcolare
04: quale è il numero minimo di monete e di quale tipo che che si
05: possono usare per ottenere quella cifra. Suggerimento: dividere
06: la cifra per 2, otterrete così il numero di monete da 2 EUR.
07: Sottrarre alla cifra originale l'ammontare complessivo delle monete
08: da 2 EUR. Ripetere la procedura sulla cifra rimanente dividendo
09: per 1 e ottenendo così il numero di monete da 1 EUR da usare.
10: Sottrarre ulteriormente l'ammontare complessivo delle monete da
11: 1 EUR e ripetere ulteriormente la procedura con tutti i tagli di
12: monete rimanenti dal piú grande (50 eurocent) fino al centesimo.
13: */
14:
15: // perche' con 8.87 non funziona (ad esempio)?
16:
17: #include<stdio.h>
18: #include<stdlib.h>
19:
20: int main(int argc, char **argv){
21:
22: printf("Inserisci un ammontare in euro: ");
23: float somma;
24: scanf("%f", &somma);
25:
26: printf("L'ammontare %.2f e' realizzabile usando\n", somma);
27:
28: int euro2 = somma / 2;
29: somma = somma - 2 * euro2;
30: printf("%3d monete da 2 eur, mi rimangono %g EUR da gestire\n", euro2, somma);
31:
32: int euro1 = somma;
33: somma = somma - euro1;
34: printf("%3d monete da 1 eur, mi rimangono %g EUR da gestire\n", euro1, somma);
35:
36: int euroc50 = somma * 2;
37: somma = somma - euroc50 * .5;
38: printf("%3d monete da 50 eurocent, mi rimangono %g EUR da gestire\n", euroc50, somma);
39:
40: int euroc20 = somma * 5;
41: somma = somma - euroc20 * .2;
42: printf("%3d monete da 20 eurocent, mi rimangono %g EUR da gestire\n", euroc20, somma);
43:
44: int euroc10 = somma * 10;
45: somma = somma - euroc10 * .1;
46: printf("%3d monete da 10 eurocent, mi rimangono %g EUR da gestire\n", euroc10, somma);
47:
48: int euroc05 = somma * 20;
49: somma = somma - euroc05 * .05;
50: printf("%3d monete da 5 eurocent, mi rimangono %g EUR da gestire\n", euroc05, somma);
51:
52: int euroc02 = somma * 50;
53: somma = somma - euroc02 * .02;
54: printf("%3d monete da 2 eurocent, mi rimangono %g EUR da gestire\n", euroc02, somma);
55:
56: int euroc01 = somma * 100;
57: somma = somma - euroc01 * .01;
58: printf("%3d monete da 1 eurocent, mi rimangono %g EUR da gestire\n", euroc01, somma);
59:
60: printf("Ovvero da un totale di %d monete\n", euro2 + euro1 + euroc50 + euroc20 + euroc10 + euroc05 + euroc02 + euroc01);
61:
62:
63: return 0;
64: }
65:
66: // provate con 7.87 -> c'e' un errore... o meglio, i calcoli sembrano tutti giusti ma cosa succede?
67: // come posso ovviare
68:
69: