代码是:
int main()
{
displayOwe(getOwe(), customerpaid());
displayChange(dollars, quarters, dimes, nickels, pennies);
return 0;
}
float getOwe()
{
float owed;
printf("\nHow much does the customer owe? ");
scanf("%f" ,&owed );
return owed;
}
float customerpaid()
{
float paid;
printf("\nHow much did the customer pay? ");
scanf("%f" ,&paid );
return paid;
}
float calculateTotal (float paid, float owed)
{
float answer;
answer = paid - owed;
return answer;
}
float displayOwe(float owed , float paid)
{
printf("\nCustomer owes $%0.2f and paid $%0.2f.", owed, paid);
}
int displayChange(int dollars, int quarters, int dimes, int nickels, int pennies)
{
dollars= ;
quarters=
dimes=
nickels=
pennies=
printf("\n\nCashier should refund %d dollars, %d quarters, %d dimes, %d nickels, and %d pennies.", dollars, quarters, dimes, nickels, pennies);
}
我必须创建一个 C 程序来计算变化,以显示客户欠了多少以及客户支付了多少。我做了那部分,它工作得很好,但我不知道如何制作程序来显示收银员需要返回给顾客多少美元、25美分、10美分、5美分和1美分。任何帮助将不胜感激。
最佳答案
displayChange 需要两个额外的参数 - 欠 float 、支付 float 。其他参数应该是引用“&”,因为它们是输出参数。
在 displayChange 中,我会将 float 转换为整数:
int iOwed = owed * 100;
int iPaid = paid * 100;
现在一分钱是 1,而不是 0.01,一美元是 100,而不是 1;
将它们作为整数后,首先进行更改:
int change = iPaid - iOwed;
然后通过从最大到最小的货币单位计算每种债务的金额 - 首先除以,然后得到余数。
dollars = change / 100;
使用模运算符求余数:
remainder = change % 100;
然后使用 25、10、5 和 1 分别表示 25 美分、10 美分、5 美分和 1 便士,继续计算剩余的值。
quarters = remainder / 25;
remainder = remainder % 25;
关于c - 我怎样才能让我的 C 程序以美元、25 美分、10 美分、5 美分和 10 分的形式返回找零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165273/