0

我被教导如何使用 c 中的 mod 运算符来计算硬币面额的找零,例如:如果给定 22 美元,并且需要计算出 22 中有多少 10 美元、5 美元、2 美元和 1 美元,那么:

22/10 = 2 of $10
22%10 = 2
Therefore since only $2 left:
2/5 = 0
2%5 = 2
2/2 = 1 of $2
2%2 = 0 
So 2 $10 and 1 $2.

我的问题是,我究竟如何才能将其编写为代码,以便它适用于任何给定数量的更改?我仍然是初学者,所以我遇到了一些困难。我感谢任何帮助,谢谢。

4

1 回答 1

3

因此,如果纸币/硬币的最大值为 10 美元(如果这听起来微不足道,很抱歉,但我不是美国公民):

int vals[] = { 10, 5, 2, 1 };
int amount = 22;

for (int i = 0; i < sizeof(vals) / sizeof(vals[0]); i++) {
    printf("%d piece of $%d\n", amount / vals[i], vals[i]);
    amount %= vals[i];
}
于 2013-04-16T17:34:13.763 回答