나는이 변경 계산기를 썼고 changeAmount
값으로 $ 2.30을 입력 할 때를 제외하고는 모두 잘 작동한다. 어떻게 해결할 수 있습니까? 이 코드는 :
#include <iostream>
using namespace std;
int main()
{
double changeAmount;
int fives;
int ones;
int quarters;
int dimes;
int nickels;
int pennies;
cout <<"*** A Very Simple Change Machine ***" <<endl;
cout <<endl;
cout <<"Enter change amount --> ";
cin >>changeAmount;
cout <<"The change amount is $" <<changeAmount <<" ." <<endl;
cout <<endl;
if (changeAmount < 0)
{
cout << "Invalid amount." <<endl;
}
else
{
changeAmount = changeAmount * 100;
changeAmount = int(changeAmount);
fives = changeAmount/500 ;
changeAmount -= fives * 500;
ones = changeAmount/100 ;
changeAmount -= ones * 100;
quarters = changeAmount/25;
changeAmount -= quarters * 25;
dimes = changeAmount/10;
changeAmount -= dimes * 10;
nickels = changeAmount/5;
changeAmount -= nickels * 5;
pennies = changeAmount/1 ;
changeAmount -= pennies * 1;
cout <<"Your change is given as :" <<endl;
cout <<" $5 bill (s) : " <<fives <<endl;
cout <<" $1 bill (s) : " <<ones <<endl;
cout <<" quarter (s) : " <<quarters <<endl;
cout <<" dime (s) : " <<dimes <<endl;
cout <<" nickel (s) : " <<nickels <<endl;
cout <<" penny (ies) : " <<pennies <<endl;
}
return 0;
}
먼저, 디버거로 코드를 단계별로 실행하여 문제가 어디에 있는지 찾아야합니다. –
디버거를 사용하여 시작하십시오. 참고로'pennies = changeAmount/1;'은'pennies = changeAmount; '와 같고,'changeAmount - = pennies * 1;'을 완전히 제거 할 수 있습니다. 왜냐하면 의미가 없기 때문입니다. (이후에는'changeAmount'를 더 이상 언급하지 않으므로 값을 업데이트 할 필요가 없으며 불필요한 곱셈과 뺄셈을 피하기 위해'changeAmount = 0; '을 사용할 수 있습니다.) –
재무 계산을위한 부동 소수점. 아프다, 아프다! – Deduplicator