C语言怎样产生一定范围的随机数?

现在需要产生1~3之间的整型随机数,该用什么函数产生?百度上面没找到产生随机数的范围最小值大于0的方法,rand,srand怎么用才能产生任意范围的整型随机数?
在线等待中~~~~

第1个回答  2010-01-10
头文件添加
#include<stdlib.h>
随机函数:rand()%X
X就是你要的范围,不过这里是默认0开始的,要除掉0的话,就写成rand()%X+1,就可以了
int i;
i=rand()%20;
类似这样用
第2个回答  2010-06-20
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a;
int t=10,d=100;
srand(time(NULL)); /*初始化随机数种子*/

a=rand()%(d-t)+t; /*生成一个[t,d)区间内的整数*/
return 0;
}
//---------------------------------------------------------------------------
第3个回答  2010-01-10
函数名: rand
功 能: 随机数发生器
用 法: void rand(void);
程序例:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int i;

printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
函数名: random
功 能: 随机数发生器
用 法: int random(int num);
程序例:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

/* prints a random number in the range 0 to 99 */
int main(void)
{
randomize();
printf("Random number in the 0-99 range: %d\n", random (100));
return 0;
}

函数名: randomize
功 能: 初始化随机数发生器
用 法: void randomize(void);
程序例:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(void)
{
int i;

randomize();
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
第4个回答  2018-05-23
也要大概接近呀,因为两次调用rand函数的时间通常是不同的,则计算出来的伪随机序列就是完全相同的。各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值;
for(int i=0;100000;i++)
{
//相关语句
}

参考资料.h>time,而由于计算机运行很快;i<i++)
{
srand( (unsigned)time( NULL ) ):

问题1;设定随机数种子
rand()%100,需要在每次产生随机序列前。
第5个回答  2010-01-10
整数还是小数啊。
整数好办,比如要产生N到M的,其中N-M=Q

a = rand()%Q+N;

记得在前面加上#include <time.h>
并在程序一开始处
void main ()
{
这里加上
srand (time(0)) ;
相似回答