codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int P; // prodotti
int Pr; // prezzo del prodotto
int MON; // monette
int Imp; // vallore dell'importo
int DIF; // centesimi mancanti
int RT; // resto totale
int RC; // resto monete da 5 cent
int RU; // resto monete da 1 cent
printf(" Menu di scelta \n");
printf(" _____________________________________\n ");
printf("| 1. Caffe' ---> 70 cent |\n");
printf("| 2. The' ---> 50 cent |\n");
printf("| 3. Cioccolata ---> 100 cent |\n");
printf("| 4. Cappuccino ---> 125 cent |\n");
printf("| 5. Macchiatone ---> 90 cent |\n");
printf(" ______________________________________\n");
printf("Selezionare il prodotto desiderato\n");
scanf("%d",& P);
while(P!=1 && P!=2 && P!=3 && P!=4 && P!=5)
{
printf("Riselezionare prodotto, scelta errata\n");
scanf("%d",& P);
}
switch(P)
{
case 1:
{
printf("Lei ha selezionato un Caffe'\n");
Pr=70;
Imp=0;
while(Imp<Pr)
{
printf("Inserire la moneta\n");
scanf("%d",&MON);
while(MON!=1 && MON!=5 && MON!=10 && MON!=20 && MON!=50)
{
printf("Questo distributore accetta solo 1, 5, 10, 20, 50 centesimi\n");
printf("Inserire la moneta\n");
scanf("%d",&MON);
}
Imp=Imp+MON;
DIF=Pr-Imp;
printf("Mancano %d centesimi\n",DIF);
}
RT=Imp-Pr;
RC=RT/5;
RU=RT-(RC*5);
printf("Il resto e' di %d centesimi, %d monete da 5 centesimi e %d monete da 1 centesimo\n",RT,RC,RU);
system("PAUSE");
return 0;
}
break;
case 2:
{
printf("Lei ha selezionato un The'");
Pr=50;
Imp=0;
while(Imp<Pr)
{
printf("Inserire la moneta\n");
scanf("%d",&MON);
while(MON!=1 && MON!=5 && MON!=10 && MON!=20 && MON!=50)
{
printf("Questo distributore accetta solo 1, 5, 10, 20, 50 centesimi\n");
printf("Inserire la moneta\n");
scanf("%d",&MON);
}
Imp=Imp+MON;
DIF=Pr-Imp;
printf("Mancano %d centesimi\n",DIF);
}
RT=Imp-Pr;
RC=RT/5;
RU=RT-(RC*5);
printf("Il resto e' di %d centesimi, %d monete da 5 centesimi e %d monete da 1 centesimo\n",RT,RC,RU);
system("PAUSE");
return 0;
}
break;
case 3:
{
printf("Lei ha selezionato un cioccolata");
Pr=100;
Imp=0;
while(Imp<Pr)
{
printf("Inserire la moneta\n");
scanf("%d",&MON);
while(MON!=1 && MON!=5 && MON!=10 && MON!=20 && MON!=50)
{
printf("Questo distributore accetta solo 1, 5, 10, 20, 50 centesimi\n");
printf("Inserire la moneta\n");
scanf("%d",&MON);
}
Imp=Imp+MON;
DIF=Pr-Imp;
printf("Mancano %d centesimi\n",DIF);
}
RT=Imp-Pr;
RC=RT/5;
RU=RT-(RC*5);
printf("Il resto e' di %d centesimi, %d monete da 5 centesimi e %d monete da 1 centesimo\n",RT,RC,RU);
system("PAUSE");
return 0;
}
break;
case 4:
{
printf("Lei ha selezionato un cappuccino");
Pr=125;
Imp=0;
while(Imp<Pr)
{
printf("Inserire la moneta\n");
scanf("%d",&MON);
while(MON!=1 && MON!=5 && MON!=10 && MON!=20 && MON!=50)
{
printf("Questo distributore accetta solo 1, 5, 10, 20, 50 centesimi\n");
printf("Inserire la moneta\n");
scanf("%d",&MON);
}
Imp=Imp+MON;
DIF=Pr-Imp;
printf("Mancano %d centesimi\n",DIF);
}
RT=Imp-Pr;
RC=RT/5;
RU=RT-(RC*5);
printf("Il resto e' di %d centesimi, %d monete da 5 centesimi e %d monete da 1 centesimo\n",RT,RC,RU);
system("PAUSE");
return 0;
}
break;
case 5:
{
printf("Lei ha selezionato un macchiatone");
Pr=90;
Imp=0;
while(Imp<Pr)
{
printf("Inserire la moneta\n");
scanf("%d",&MON);
while(MON!=1 && MON!=5 && MON!=10 && MON!=20 && MON!=50)
{
printf("Questo distributore accetta solo 1, 5, 10, 20, 50 centesimi\n");
printf("Inserire la moneta\n");
scanf("%d",&MON);
}
Imp=Imp+MON;
DIF=Pr-Imp;
printf("Mancano %d centesimi\n",DIF);
}
RT=Imp-Pr;
RC=RT/5;
RU=RT-(RC*5);
printf("Il resto e' di %d centesimi, %d monete da 5 centesimi e %d monete da 1 centesimo\n",RT,RC,RU);
system("PAUSE");
return 0;
}
break;
}
system("PAUSE");
return 0;
}
adesso il programma funziona alla perfezione ma ce un unica imperfezione, una volta ragiunto l'importo del prezzo e quindi finita la procedure di immisione delle monete, se ad esempio ho inserito un numero di cent maggiore del prezo e quindi mi dovra dare il resto, il messaggio di output che mi dice ogni volta quanti centesimi mancano non si ferma a 0 ma va sotto lo 0, cioe al posto di dirmi "Mancano 0 centesimi" "Il resto e' di TOT centesimi, TOT monete da 5 centesimi e TOT monete da 1 centesimo" mi dice "Mancano -X centesimi" "Il resto e' di TOT centesimi, TOT monete da 5 centesimi e TOT monete da 1 centesimo"