一直以来都无法理解取模的具体操作。现在不妨先做个实验,究竟取模的结果是什么。代码如下:
#include <stdio.h>
main()
{
printf("1 \37 3 = %d\n",1%3);
printf("2 \37 3 = %d\n",2%3);
printf("3 \37 3 = %d\n",3%3);
printf("4 \37 3 = %d\n",4%3);
printf("5 \37 3 = %d\n",5%3);
printf("6 \37 3 = %d\n",6%3);
}
执行生成文件后形成如下内容:
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1
5 % 3 = 2
6 % 3 = 0
先分析大于三的数与三进行取模运算。4%3上1余1,其余的5和6也是类似的计算,所以大于三的数与三进行取模运算比较好理解。接着再来看小于及等于三的数,先看三本身,取模上一余0,所以为0;接着看2,上0余下的就是2本身,同样1也是余下1本身。
所以可以总结出取模运算实质就是“除法后余下的零头”但是要注意“上0进行除法”的情况,即上述1和2与3进行取模运算。
——–
题外话,这个程序编译的时候出现了点小问题,在printf函数的双引号内想要打出百分号不能够直接键入%,因为这里的1%3在双引号中表示的是1这个数用三个字符的位置来显示。所以必须得换作用转义字符,查ASIIC表后发现百分号是第37个,所一用/37来表示百分号,前后记得要加上空格。
C中取模实质就是获得余数。
对的。。。这个我今天才发现。只是那个上0的,有点奇特啦~
因为正好除尽,只有商数,余数只是0了