我被教过如何在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.

我的问题是,我究竟如何才能将其编写为代码,以便它可以在任何给定的更改量下工作?我还是一个初学者,因此遇到了一些困难。 感谢您的帮助,谢谢。

===============>>#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];
}

  ask by translate from so

未解决问题?本站智能推荐:

2回复

fmod是否与HLSL中的%运算符等效

以下语句是有效的HLSL: 显然te%运算符适用于浮点数? 与fmod有什么不同? 以下陈述是否相同? 谢谢
3回复

如何在JavaScript中让模运算符在两个数字之间添加奇数?

以下是到目前为止的内容。 并将用户提示放在函数中还是将其保留在原处? 我正在“尝试”完成的是添加
5回复

C中的模运算符

我需要检查c中数字的可除性。 如何使用C中的模运算来检查一个数字是否可被另一个数字整除? 我尝试这样做: 尽管file_int等于9,但是它没有用。 我做错了什么? 谢谢
5回复

有没有办法在没有模数/除法运算符的情况下编写“mod 31”?

如果操作数是2的幂,则可以在没有模数运算符或除法的情况下容易地获得数字的模数。在这种情况下,下面的公式成立: x % y = (x & (y − 1)) 。 在许多架构中,这通常很有效。 mod 31也可以这样做吗?
3回复

如何使用C语言在printf输出中使用除法运算符来显示余数

/ *在页面的3/4处,我有直接在此段下面列出的代码。 我需要它来打印其余部分,但似乎无法正确处理。 我知道使用Modulus运算符是此功能的关键,但是我对如何正确使用它一无所知。 * /
2回复

C中的模运算符无符号溢出

我在编写的某些C代码中遇到了一个错误,虽然相对容易修复,但我希望能够更好地理解它的根本问题。 从本质上讲,发生的事情是我有两个无符号整数(实际上是uint32_t),当应用模运算时,该整数产生了一个负数的无符号等效项,该数字已被包装并因此是“大”的。 这是一个示例程序来演示: 这会在
1回复

c中的%(模)运算符如何工作? [重复]

这个问题已经在这里有了答案: 从零开始的数字有什么特别之处? 4个答案 我正在尝试以下代码 我期望它的输出是0,但它是8。 为什么?
3回复

为什么Java的%运算符给出的结果与我的计算器的结果不同?

怎么来计算器-1 mod 26 = 25,但在C或Java -1 % 26 == -1 。 我需要一个像计算器一样解决它的程序。 这两者有区别吗?
2回复

C中的OR运算符

我试图在C中制作计算器。我写了那段代码 但是当我尝试运行它并尝试例如A时它会显示“输入一个有效的字符”。 我需要它,如果我键入这些字符A,B,C,D也小写。 我是以错误的方式做到的吗?
1回复

使用模运算符获得一定范围内的随机变量

抱歉,我知道已经发布了类似的问题,但这本书仍然使我感到困惑。 在“ C编程:绝对入门指南”中,有一行: 为骰子游戏生成1到6之间的随机数。 这不是错误吗? 根据我的理解,使用% 5不能得到5的余数,因此该行只能生成1到5的数字。我是一个绝对的初学者,所以我无法确定我是在犯错