如何用C语言进行模运算?
请阅读下面的代码。
#include <stdio.h>
int main(void)
{
int i = 100;
printf("%d\n", i%100);
printf("%d\n", i%240);
printf("%d\n", i%40);
printf("%d\n", i%10);
return 0;
}
结果是
$ ./modulus
0
100
20
0
请告诉我如何正确使用它。
抱歉,我在代码中犯了一个错误。该部门应该像下面的代码一样来到其他地方。
printf("%d\n", 100%i);
printf("%d\n", 240%i);
printf("%d\n", 40%i);
printf("%d\n", 10%i);
我期待的是当值乘以100时获得0
;
我很抱歉这个错误。但伙计们,请撤消我的downvotes。
答案 0 :(得分:1)
modulo division的结果是给定数字的integer division的剩余部分(在正数上)。
这意味着:
100 / 100 = 1, remainder 0
=> 100 mod 100 = 0
100 / 240 = 0, remainder 100
=> 100 mod 240 = 100
100 / 40 = 2, remainder 20
=> 100 mod 40 = 20
100 / 10 = 10, remainder 0
=> 100 mod 10 = 0
答案 1 :(得分:1)
嗯,它运作正常。你期望看到什么?
模运算符(模运算的实现),得到除法余数。例如:
a % b = c
可以改写为a = b * d + c,其中a,b,c,d是整数。
因此,100%40 = 20,因为100 = 40 * 2 + 20
答案 2 :(得分:0)
您获得的输出是正确的。当您执行两个数字的整数除法时,模数运算符返回余数。
在你的情况下
希望有所帮助:)