c - c 中的美元找零程序

标签 c loops if-statement

我有一项任务,要求我们为最高 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/

相关文章:

c++ - C 和 C++ 中类型的互操作性

c - 在linux内核的task_struct中添加复杂列表

c - 在 C 中修改 Fortran 数组

c - GDK3/GTK3 窗口更新的精确计时

java - 将输入与保存在 JAVA 文本文件中的特定行进行比较

c# - 循环删除列表中的多个项目...c#

java - If 语句为假时执行

mysql - 如何循环遍历表的所有行? (MySQL)

c - 这段代码的输出是什么,因为这段代码给了我一个空白输出,这怎么可能是真的?

mysql - 带有 INSERT as then 子句的 if 语句 (MYSQL)