|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Apr 2010
Messaggi: 540
|
[c++]programma per dare il resto!
ciao a tutti ho un compito da fare per scuola che è il seguente:
avere un importo da pagare, la somma inserita e tornare il resto a 50 20 e 10 cent ho fatto il seguente programma Quote:
|
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Nov 2011
Messaggi: 158
|
Scritto con il tag CODE è più leggibile:
Codice:
#include<iostream.h>
float imp, pag, resto, m50, m20, m10;
int r50=0, r20=0, r10=0;
main()
{
m50=0.5;
m20=0.2;
m10=0.1;
cout<<"importo da pagare: ";cin>>pag;
cout<<"importo inserito: ";cin>>imp;
resto=(imp-pag);
cout<<"Resto: "<<resto<<endl;
while(resto>=m50)
{
if(resto>=m50)
{
r50=r50+1;
resto=resto-m50;
}
}
cout<<resto<<endl;
while(resto>=m20)
{
if(resto>=m20)
{
r20=r20+1;
resto=resto-m20;
}
}
cout<<resto<<endl;
if (resto==m10)
{
r10=r10+1;
resto=resto-m10;
}
cout<<resto<<endl;
cout<<r50<<" monete da 50 cent."<<endl;
cout<<r20<<" monete da 20 cent."<<endl;
cout<<r10<<" monete da 10 cent."<<endl;
system("pause");
}
Codice:
while(resto>=m50)
{
if(resto>=m50)
{
r50=r50+1;
resto=resto-m50;
}
}
Codice:
while(resto>=m50)
{
r50=r50+1;
resto=resto-m50;
}
Il programma mi sembra corretto (oppure anche a me sfugge qualcosa Sicuro che legga bene dall'input i valori pag e imp? Compresa la virgola?
__________________
Dubbi o domande sul Galaxy S2???? Prova a dare un'occhiata qua ![]() https://docs.google.com/document/d/1...ZjQ/edit?pli=1 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2010
Messaggi: 540
|
ho provato in tutti i modi ma non capisco cosa c sia di sbagliato ho dato una sistemata ed è venuto così ma ora sbaglia il controllo sui 10 centesimi
Codice:
#include<iostream.h>
float imp, pag, resto, m50, m20, m10;
int r50=0, r20=0, r10=0;
main()
{
m50=0.5;
m20=0.2;
m10=0.1;
cout<<"importo da pagare: ";cin>>pag;
cout<<"importo inserito: ";cin>>imp;
resto=(imp-pag);
cout<<"Resto: "<<resto<<endl;
while(resto>0)
{
if(resto>=m50)
{r50=r50+1;
resto=resto-m50;}
if((resto<m50)&&(resto>=m20))
{r20=r20+1;
resto=resto-m20;}
if (resto<=m20)
{r10=r10+1;
resto=resto-m10;}
}
cout<<r50<<" monete da 50 cent."<<endl;
cout<<r20<<" monete da 20 cent."<<endl;
cout<<r10<<" monete da 10 cent."<<endl;
system("pause");
}
|
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Nov 2011
Messaggi: 158
|
Quote:
Dovresti scrivere if (resto<m20) e non if (resto<=m20) oppure if (resto<=m10)
__________________
Dubbi o domande sul Galaxy S2???? Prova a dare un'occhiata qua ![]() https://docs.google.com/document/d/1...ZjQ/edit?pli=1 |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2010
Messaggi: 540
|
funziona solo con le variabili in long double ma float non funziona certe volte va sotto con il resto oppure da una sottrazione tipo 0.60-0.50 mi da 0,0999999
Codice:
#include<iostream.h>
float imp, pag, resto, m50, m20, m10;
int r50=0, r20=0, r10=0;
main()
{
m50=0.5;
m20=0.2;
m10=0.1;
cout<<"importo da pagare: ";cin>>pag;
cout<<"importo inserito: ";cin>>imp;
resto=(imp-pag);
cout<<"Resto: "<<resto<<endl;
while(resto>0)
{
if(resto>=m50)
{r50=r50+1;
resto=resto-m50;
cout<<resto<<endl;}
else
if(resto>m10)
{r20=r20+1;
resto=resto-m20;
cout<<resto<<endl;}
else
if
{r10=r10+1;
resto=resto-m10;
cout<<resto<<endl;}
}
cout<<r50<<" monete da 50 cent."<<endl;
cout<<r20<<" monete da 20 cent."<<endl;
cout<<r10<<" monete da 10 cent."<<endl;
system("pause");
}
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12904
|
Usa double, non ha alcun senso usare float.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:03.




















