Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使一个函数中的随机值在每次运行时相同,而另一个函数中的随机值在每次运行时不同_C_Random_Random Seed_Time.h - Fatal编程技术网

C 使一个函数中的随机值在每次运行时相同,而另一个函数中的随机值在每次运行时不同

C 使一个函数中的随机值在每次运行时相同,而另一个函数中的随机值在每次运行时不同,c,random,random-seed,time.h,C,Random,Random Seed,Time.h,我搜索了网络,它显示了srand()方法,用于为每次运行生成新的随机值,而我使用简单的rand()方法在每次运行中生成相同的随机数,但我希望在程序中的不同位置使用这两种功能。 这就是我尝试过的: #include <stdio.h> #include <stdlib.h> #include <time.h> void first() { printf("these random values should be same for ever

我搜索了网络,它显示了srand()方法,用于为每次运行生成新的随机值,而我使用简单的rand()方法在每次运行中生成相同的随机数,但我希望在程序中的不同位置使用这两种功能。
这就是我尝试过的:

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

void first()
{ 
    printf("these random values should be same for every run\n");
    for(int i = 0; i<4; i++)
        printf(" %d ", rand()%4);
    printf("\n");

} 
void second()
{ 
    srand(time(0));

    printf("these random values should be different for every run\n");
    for(int i = 0; i<4; i++)
        printf(" %d ", rand()%4);
    printf("\n");
} 

int main(void)
{


    first();
    second();
    return 0;
}
#包括
#包括
#包括
首先无效()
{ 
printf(“每次运行时这些随机值应相同\n”);
对于(int i=0;i新的随机值,…每次运行中相同的随机数

Use可以在两种情况下都使用
srand()
,只需在其中使用
常量
种子即可:

void first(void)
{ 
    srand(3);//use constant argument for _same_ random values
    printf("these random values should be same for every run\n");
    for(int i = 0; i<4; i++)
        printf(" %d ", rand()%4);
    printf("\n");

} 
void second(void)
{ 
    srand(time(0));//use variable argument for _new_ random values

    printf("these random values should be different for every run\n");
    for(int i = 0; i<4; i++)
        printf(" %d ", rand()%4);
    printf("\n");
} 
先作废(作废)
{ 
srand(3);//对_same_随机值使用常量参数
printf(“每次运行时这些随机值应相同\n”);

对于(int i=0;i您的问题是什么,代码似乎对我有效,
srand
获取种子值,在第一个函数中将其硬编码为某个特定值,并在第二个函数中使用
time
函数。这是否回答了您的问题?@Ôrel抱歉,我没有正确检查它@Ôrel它正在按我希望的方式工作。