我已经被教会如何使用c中的mod运算符来计算硬币面额的变化,例如:如果给出22美元,需要算出多少10美元,5美元,2美元和1美元弥补22然后:
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.
我的问题是,我怎么能把它写成代码才能使它适用于任何给定量的变化?我仍然是初学者,所以我遇到了一些困难。感谢您的帮助,谢谢。
答案 0 :(得分: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];
}