我有一项任务,要求我们为最高 200.00 美元的美元输入编写一个自动更改程序。基本上,有人输入一个金额,输出显示该金额针对以下各种面额(多少 20s、10s、5s、1s、25、10 美分、5 美分和便士)的变化。 我已经找到了一种方法来使用每个面额的 if/else 语句来执行此操作(见下文),但我想知道是否有更简单、更简洁的方法来使用循环执行此操作? (这是一门入门类(class),所以我们还没有学习函数/数组等)
int twenties; int tens;
int fives;
int ones;
int quarter;
int dime;
int nickel;
int penny;
double dollar_ent;
printf("Please enter a dollar amount up to 100: ");
scanf("%lf", &dollar_ent);
printf("Name - Assignment 2 - Change-O-Matic\n\n");
printf("Amount entered: $%.2lf\n\n", dollar_ent);
twenties = (dollar_ent / 20);
if (twenties >=2)
printf("%.0d\t$20.00's\n", twenties);
if (twenties == 1)
printf("%.0d\t$20.00\n", twenties);
else
printf("");
谢谢!
最佳答案
您可以更轻松地将金额转换为美分。 那么您将得到一个整数,例如 20000 ($200)。
有一个包含所有可能面额的数组:
int denominations[] = { 2000, 1000, 500, 100, 25, 10, 5, 1}.
然后遍历这个数组。 将当前金额除以当前面额,然后从当前总和中减去它。计算除法的其余部分并将其设置为当前总和,然后转到下一个面额……等等……
关于c - c 中的美元找零程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22026307/