在C语言中,取随机数rand()%n,获取0到n-1之间的整数, 如果是rand()%2那么值不是0就是1,不会有小数。
#include <stdio.h>
int main()
{
int x;
for (x=0;x<10;x++)
{
if(x%3==0) printf("x3= %d\n",x);
if(x%5==0) printf("x5= %d\n",x);
}
return 0;
}
一共循环了10次,本来的想法是第一段代码打印3次,第二段代码打印2次。
但是实际运行:
但是第一段打印了4次,原因在于x=0时,属于特殊情况,任何值%取余都为0。
所以在这种情况下,循环只能从1开始,修改为x=1;x<=10
这样结果就正常了。
取%的数就和总循环数N建立起了比例关系。
想执行次数=总循环N/模数
当循环执行60次的时,想要一段代码只执行30次=60/2,模数取2即可。
模数=2,执行30次
模数=3,执行20次。
模数=4,执行15次。
模数=5,执行12次。
模数=6,执行10次。
但是要想划分的更细,比如想执行33次,42次,51次,再不改变总循环次数的时候,取余运算就做不到了。
只能通过if来人为划分。