我應該創建一個(一個功能)程序來計算給定變化量的硬幣的面額。將計算給定數量變化的硬幣的面額的程序
不知何故,我沒有得到硬幣/宿舍等數量顯示正確,它只是給了我00000.我做錯了什麼?
這裏是我的代碼:
#include <iostream>
using namespace std;
const int DOLLAR = 100;
const int QUARTER = 25;
const int DIME = 10;
const int NICKEL = 5;
const int PENNY = 1;
void getChange (double &money, int &value);
int change(double &money, int value);
int main()
{
double money;
int value;
getChange (money, value);
int numDollar = change(money, DOLLAR);
int numQuarter = change(money, QUARTER);
int numDime = change(money, DIME);
int numNickel = change(money, NICKEL);
int numPenny = change(money, PENNY);
cout << numDollar << endl;
cout << numQuarter <<endl;
cout << numDime <<endl;
cout << numNickel <<endl;
cout << numPenny <<endl;
cout << value <<endl;
}
void getChange (double &money, int &value)
{
cin >> money;
value = static_cast<double>(money) * 100;
}
int change(double &money, int value)
{
int numDollar, numQuarter, numDime, numNickel, numPenny;
while(value>100)
numDollar = value/DOLLAR;
money = value - (numDollar*DOLLAR);
numQuarter = money/QUARTER;
money = money - (numQuarter*QUARTER);
numDime = money/DIME;
money = money - (numDime*DIME);
numNickel = money/NICKEL;
money = money - (numNickel*NICKEL);
numPenny = money/PENNY;
money = money - (numPenny*PENNY);
return money;
}
首先,你需要了解你正在嘗試做什麼。 (即使這個部分已經混淆了,你似乎無法跟蹤'money'變量是以美元還是美分爲單位)。一旦你知道自己在做什麼,就在調試器中遍歷代碼並檢查每個步驟結果在你所期望的。 – 2014-09-26 06:43:39
此問題應發佈到codereview或編程stackexchange。 – plaes 2014-09-26 06:46:36
關注'change'函數,直到你明白爲什麼它總是返回0爲止。然後編寫一個新的'change'函數,它的工作原理與你的'main'類似。 (提示:'變化'應該完全不知道教派。) – molbdnilo 2014-09-26 06:55:40