- 119
- 14
- CPU
- Intel i7 5820k
- Scheda Madre
- Msi X99 SLI-PLUS
- HDD
- 1TB WD Caviar Blue/SSD Crucial M550 128GB
- RAM
- DDR4 2X4GB Crucial Ballistix Sport 2400 Mhz
- GPU
- AMD Sapphire R9 270x
- PSU
- Super Flower Leadex Gold 650w
- Case
- Be-Quiet Silent Base 800 Black&Orange
- OS
- Windows 7 Ultimate 64bit
Salve a tutti! :ciaociao:
scrivo per chiedere aiuto riguardante un programmino con cui mi sto allenando,dovrei ricevere in input un valore di denaro e successivamente stampare in output le banconote e le monete erogate(in un certo senso come un bancomat)
#include <iostream>
using namespace std;
int main()
{
//Inizializzo tutte le variabili necessarie
long int euro;
int banc_500,banc_200,banc_100,banc_50,banc_20,banc_10,banc_5;
int moneta2e,moneta1e,moneta_50,moneta_20,moneta_10,moneta_5,moneta_2,moneta_1;
double soldi_iniziali;
cout<<"inserire il contante disponibile"<< endl;
//Trasformo la cifra inserita in centesimi di euro
cin>>soldi_iniziali;
soldi_iniziali=soldi_iniziali*100;
euro=(int)soldi_iniziali;
cout<<"verrà ora visualizzata la miglior soluzione erogabile con le banconote in corso legale"<<endl;
//Divido a scaletta per ogni banconota e moneta cambiando di volta in volta il valore della variabile euro con il resto della frazione
if(euro>=0)
{banc_500=euro/50000;
euro=euro%50000;
banc_200=euro/20000;
euro=euro%20000;
banc_100=euro/10000;
euro=euro%10000;
banc_50=euro/5000;
euro=euro%5000;
banc_20=euro/2000;
euro=euro%2000;
banc_10=euro/1000;
euro=euro%1000;
banc_5=euro/500;
euro=euro%500;
moneta2e=euro/200;
euro=euro%200;
moneta1e=euro/100;
euro=euro%100;
moneta_50=euro/50;
euro=euro%50;
moneta_20=euro/20;
euro=euro%2;
moneta_10=euro/10;
euro=euro%1;
moneta_5=euro/5;
euro=euro%5;
moneta_2=euro/2;
euro=euro%2;
moneta_1=euro/1;
euro=euro%1;}
cout<<"Le banconote e le monete verranno erogate nel seguente modo:"<<endl<<endl;
cout<<"Banconote da 500:"<<banc_500<<endl
<<"Banconote da 200:"<<banc_200<<endl
<<"Banconote da 100:"<<banc_100<<endl
<<"Banconote da 50:"<<banc_50<<endl
<<"Banconote da 20:"<<banc_20<<endl
<<"Banconote da 10:"<<banc_10<<endl
<<"Banconote da 5:"<<banc_5<<endl;
cout<<"Monete da 2 euro:"
<<moneta2e<<endl
<<"Monete da 1 euro:"<<moneta1e<<endl
<<"Monete da 50 centesimi:"<<moneta_50<<endl
<<"Monete da 20 centesimi:"<<moneta_20<<endl
<<"Monete da 10 centesimi:"<<moneta_10<<endl
<<"Monete da 5 centesimi:"<<moneta_5<<endl
<<"Monete da 2 centesimi:"<<moneta_2<<endl
<<"Monete da 1 centesimo:"<<moneta_1<<endl;
cout<<euro;
system("pause");
return 0;
}
Il programma così scritto dovrebbe essere "finito" , tralasciando bug e il fatto che sicuramente c'è una via migliore di scriverlo, ho un problema...
quando vado a scrivere una qualunque cifra , il programma termina alla moneta da 1 euro, dandomi sempre tutte le altre uguali a 0
facendo qualche prova ho scoperto che quando moltiplico la variabile float soldi_iniziali per 100 essa si comporta in modo strano....praticamente qualsiasi numero con la virgola io moltiplichi mi restituisce un numero con gli zeri al posto dei decimali, per farmi capire: 33,47*100 mi da 3300 oppure 5786,95*100 mi da 578600,
ora la domanda è... perché? sbaglio qualcosa io? è il programma? o il mio computer è sballato? xD
grazie anticipate
scrivo per chiedere aiuto riguardante un programmino con cui mi sto allenando,dovrei ricevere in input un valore di denaro e successivamente stampare in output le banconote e le monete erogate(in un certo senso come un bancomat)
#include <iostream>
using namespace std;
int main()
{
//Inizializzo tutte le variabili necessarie
long int euro;
int banc_500,banc_200,banc_100,banc_50,banc_20,banc_10,banc_5;
int moneta2e,moneta1e,moneta_50,moneta_20,moneta_10,moneta_5,moneta_2,moneta_1;
double soldi_iniziali;
cout<<"inserire il contante disponibile"<< endl;
//Trasformo la cifra inserita in centesimi di euro
cin>>soldi_iniziali;
soldi_iniziali=soldi_iniziali*100;
euro=(int)soldi_iniziali;
cout<<"verrà ora visualizzata la miglior soluzione erogabile con le banconote in corso legale"<<endl;
//Divido a scaletta per ogni banconota e moneta cambiando di volta in volta il valore della variabile euro con il resto della frazione
if(euro>=0)
{banc_500=euro/50000;
euro=euro%50000;
banc_200=euro/20000;
euro=euro%20000;
banc_100=euro/10000;
euro=euro%10000;
banc_50=euro/5000;
euro=euro%5000;
banc_20=euro/2000;
euro=euro%2000;
banc_10=euro/1000;
euro=euro%1000;
banc_5=euro/500;
euro=euro%500;
moneta2e=euro/200;
euro=euro%200;
moneta1e=euro/100;
euro=euro%100;
moneta_50=euro/50;
euro=euro%50;
moneta_20=euro/20;
euro=euro%2;
moneta_10=euro/10;
euro=euro%1;
moneta_5=euro/5;
euro=euro%5;
moneta_2=euro/2;
euro=euro%2;
moneta_1=euro/1;
euro=euro%1;}
cout<<"Le banconote e le monete verranno erogate nel seguente modo:"<<endl<<endl;
cout<<"Banconote da 500:"<<banc_500<<endl
<<"Banconote da 200:"<<banc_200<<endl
<<"Banconote da 100:"<<banc_100<<endl
<<"Banconote da 50:"<<banc_50<<endl
<<"Banconote da 20:"<<banc_20<<endl
<<"Banconote da 10:"<<banc_10<<endl
<<"Banconote da 5:"<<banc_5<<endl;
cout<<"Monete da 2 euro:"
<<moneta2e<<endl
<<"Monete da 1 euro:"<<moneta1e<<endl
<<"Monete da 50 centesimi:"<<moneta_50<<endl
<<"Monete da 20 centesimi:"<<moneta_20<<endl
<<"Monete da 10 centesimi:"<<moneta_10<<endl
<<"Monete da 5 centesimi:"<<moneta_5<<endl
<<"Monete da 2 centesimi:"<<moneta_2<<endl
<<"Monete da 1 centesimo:"<<moneta_1<<endl;
cout<<euro;
system("pause");
return 0;
}
Il programma così scritto dovrebbe essere "finito" , tralasciando bug e il fatto che sicuramente c'è una via migliore di scriverlo, ho un problema...
quando vado a scrivere una qualunque cifra , il programma termina alla moneta da 1 euro, dandomi sempre tutte le altre uguali a 0
facendo qualche prova ho scoperto che quando moltiplico la variabile float soldi_iniziali per 100 essa si comporta in modo strano....praticamente qualsiasi numero con la virgola io moltiplichi mi restituisce un numero con gli zeri al posto dei decimali, per farmi capire: 33,47*100 mi da 3300 oppure 5786,95*100 mi da 578600,
ora la domanda è... perché? sbaglio qualcosa io? è il programma? o il mio computer è sballato? xD
grazie anticipate
Ultima modifica: