C语言指定范围内产生随机数
在实际开发中,我们经常需要一定范围内的随机数,太大或太小都不符合要求,那么,如何生成指定范围的随机数呢?我们可以采用取模的方法:
int r = rand() % 10; //产生0~9的随机数,注意10会被整除
如果要规定上下限:
int r = rand() % 51 + 13; //产生13~63的随机数
分析:取模即取余,rand()%51+13我们可以看成两部分:rand()%51是产生 0~50 的随机数,后面+13保证 a 最小只能是 13,最大就是
50+13=63。
最后给出产生 13~63 范围内随机数的完整代码:
#include <iostream>
int main(void)
{
int r = 0;
srand(time(NULL));
r = rand() % 51 + 13;
printf("%d",r);
getchar();
return(0);
}
以下C程序用于批量生成指定范围内的随机数:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Random(int min,int max); // 生成指定范围内的随机数
int main(void)
{
srand(time(NULL));
for (int i=1;i<=10;i++)
{
printf("%d\n",Random(1,100));
}
getchar();
return(0);
}
int Random(int min,int max)
{
int r = rand() % (max-min+1)+min;
return(r);
}