C语言库函数中的rand()的用法??

include <stdlib.h>
#include <stdio.h>
#include<conio.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);
getch();
return 0;
}
为什么每次运行的结果都是一样的??关了重启结果还是一样!!
这结果哪像是随机啊?!!
求高手帮忙解释一下这个库函数的用法?如果能解释一下上面结果不随机问题最好.谢谢!

一般情况下,随机函数都是以时间作为参考的。所以在使用时,可能需要初始化随机种子。
下面是MSDN对rand()函数说明的例子。

Example
Copy Code
// crt_rand.c
// This program seeds the random-number generator
// with the time, then displays 10 random integers.
//

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

int main( void )
{
int i;

// Seed the random-number generator with current time so that
// the numbers will be different every time we run.
//
srand( (unsigned)time( NULL ) );

// Display 10 numbers.
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );

printf("\n");

// Usually, you will want to generate a number in a specific range,
// such as 0 to 100, like this:
{
int RANGE_MIN = 0;
int RANGE_MAX = 100;
for (i = 0; i < 10; i++ )
{
int rand100 = (((double) rand() /
(double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
printf( " %6d\n", rand100);
}
}
}

Sample Output

24052
20577
2235
29883
26046
22303
19311
5143
3208
8804

49
90
91
16
21
16
91
68
30
31

参考资料:MSDN

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-01-07
函数rand所产生的随机数实际上是伪随机数,即反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。要产生真正的随机数序列,必须在每一次运行前为rand函数提供不同的种子,这是由srand函数提供的。
所以加上srand(time(NULL))就可以产生真正的随机数了。

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

int main(void)
{
int i;
srand(time(NULL));

printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand()%100);
getch();
return 0;
}
第2个回答  2017-12-28
它的返回值就是求取随机的值,所以如果没有对数有要求,直接这样定:
printf("%d", rand());就能输出一个随机数.但如果对数有要求,如小数或在一定值以内:
小数:rand()+rand()/100.0 //100.0后面的.0必须写,100是说明求两位小数,你可以自己加大.
一定范围:rand()%10+0 //10是顶和底的差,0是底,就是说求10到20之间的数就是:rand()%10+10
但是调用它必须先调用srand()来生成随机种子,如果你没调用它,系统会自动调用.但是srand是有个参数的,种子就是根据这个参数来定的,所以这个参数决定着生成的随机数.如果你在代码里写死了它:srand(10);那这样rand生成的随机数就也被定格在了一定量,所以不要这样用.要这样写:
srand(time(NULL));time的返回值是当前系统时间.因为时间不同,所取的数值也就不同.这样随机数就真正的随机了.
time在中声明
rand,srand在中声明.

C语言库函数中的rand()的用法??
Example Copy Code \/\/ crt_rand.c \/\/ This program seeds the random-number generator \/\/ with the time, then displays 10 random integers.\/\/ include <stdlib.h> include <stdio.h> include int main( void ){ int i;\/\/ Seed the random-number generator with current time so that \/...

c中,rand()是什么意思,有什么作用
在C语言中,rand函数是标准库中的一个重要函数,用于生成伪随机数序列。伪随机数是通过算法计算得出的,虽然看起来是随机的,但实际上是由初始的种子值决定的。这意味着,如果两次程序运行的种子值相同,那么产生的随机数序列也会相同。因此,rand函数通常用于模拟、游戏、数值计算等需要随机数据的场景。二...

c语言中rand()函数怎么用?
rand函数是C语言中的一个标准库函数,用于生成随机整数。其基本语法为:c include \/\/ 包含stdlib库,该库包含rand函数 int rand; \/\/ 不需要传递参数 调用rand函数即可返回一个随机整数。二、生成特定范围的随机数 为了生成特定范围的随机数,可以使用rand函数结合算术运算来实现。例如,要生成一个介于1...

c语言中rand是什么意思
rand()是C语言中产生随机数的一个函数,但是需要注意的是,产生的是伪随机数。rand()用法举例:产生1到100之间的随机数 include int main(){ srand((unsigned)time(NULL));\/\/产生随机数种子 int rand_num=(rand()%100)+1;\/\/产生1到100直接的随机数 printf("rand_num=%d\\n

c语言随机函数rand()怎么使用?
0是底,就是说求10到20之间的数就是:rand()%10+10\\x0d\\x0a但是调用它必须先调用srand()来生成随机种子,如果你没调用它,系统会自动调用.但是srand是有个参数的,种子就是根据这个参数来定的,所以这个参数决定着生成的随机数.如果你在代码里写死了它:srand(10);那这样rand生成的随机数就也被定...

C中,rand()是什么意思,有什么作用
在C语言中,rand()函数扮演着生成伪随机数的关键角色。它被包含在头文件中,其功能是返回一个0到RAND_MAX之间的随机整数,通常这个范围在32767(对于int类型)或更大(根据数据类型)。然而,rand()生成的并非真正的随机数,而是根据一个内部种子值通过线性同余法计算得出的。在使用rand()之前,必须先...

请教函数rand()的用法
函数rand的用法 函数rand是C语言标准库中的一个随机数生成函数。它的作用是生成一系列伪随机整数,常用于程序中的随机操作。以下是关于rand函数的 用法概述:1. 引入头文件:在使用rand函数前,需要先引入stdlib头文件,即使用语句“#include ”。2. 生成随机数:通过调用rand函数即可生成一个...

C语言中的rand()函数是产生随机数的吗?
rand()函数是产生随机数的一个随机函数。(1)使用该函数首先应在开头包含头文件stdlib.h include<stdlib.h>(C++建议使用#include<cstdlib>,下同)(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。(3)rand()函数没有...

c语言之rand函数的使用
c语言中的rand随机数函数,是按指定顺序来产生的,在生成随机数之前,在stdlib.h头文件中,会初始化函数srand,根据随机种子seed,来获取随机数,如果seed不变,每次运行得到的随机数会是一样的,因此,rand函数也被大家叫做伪随机数。下面就来介绍下rand函数的使用 1、打开代码编译器,输入如下所示的...

c语言中rand()函数怎么用?
五、为了使rand的结果更“真”一些,也就是令其返回值更具有随机性(不确定性),C语言在stdlib.h中还提供了srand函数,通过该函数可以设置一个随机数种子,一般用当前时间的毫秒数来做参数。通过time(NULL)可以获取到当前时间的毫秒值(该函数位于time.h)中。六、使用rand的流程可以总结为:1 调用sran...

相似回答