兰德函数赢得';I don’我不能像C中所说的那样工作

兰德函数赢得';I don’我不能像C中所说的那样工作,c,random,srand,C,Random,Srand,我想用随机数填充表格,并计算填充所需的时间 时间似乎还可以,但在我打印表格后,数字不是随机的 它打印:01234567889 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 int getUniqueNumber(int *p, int i); int main() { int i, p[N]; long t0, t1, dt; prin

我想用随机数填充表格,并计算填充所需的时间

时间似乎还可以,但在我打印表格后,数字不是随机的

它打印:01234567889

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10

int  getUniqueNumber(int *p, int i);

int main()
{
    int i, p[N];
    long t0, t1, dt;

    printf("Getting %i random numbers...",N);
    time(&t0);
    for (i=0; i<N; i++)
       p[i] = getUniqueNumber(p,i);
    time(&t1);
    printf("Task Completed.\n\n");
    dt = t1 - t0;
    printf("Calc time = %ld\n",dt);

    for(i=0; i<N; i++)
       printf("%d ",i);

    return 0;
}

int  getUniqueNumber(int *p, int i)
{

    int x, j, found;
    do
    {
        srand(time(NULL));
        x = rand();
        found = 0;
        j = 0;
        while (j<=i && found == 0)
        {
            if (p[j] == x)
               found = 1;
            else
               j++;
         }
     }while (found == 1);

     return x;
}
#包括
#包括
#包括
#定义n10
int getUniqueNumber(int*p,int i);
int main()
{
int i,p[N];
长t0,t1,dt;
printf(“获取%i个随机数…”,N);
时间(&t0);


对于(i=0;i你应该只调用
srand(time(NULL));
一次。

你应该只调用
srand(time(NULL));
一次。

你应该只调用
srand(time(NULL));
你应该只调用
srand(time(NULL));
一次。

我应该在哪里移动
srand(time(NULL))
?在
main
的开头。好吧,我把它放在
main
的第一个
printf
上面,运气不好…@iSpithash;那是因为你没有打印表。把
printf(“%d”,i);
改为
intf(“%d”,p[i]);
改为
main
main
。天哪,我真傻。谢谢你的帮助,就是这样:)在
main
的开始处,我把它放在
main
中第一个
printf
的上方,但运气不好…@iSpithash;那是因为您没有打印表。将
printf(“%d”,i);
更改为
intf(“%d”,p[i])
main
中。哦,我的天啊,我真蠢。谢谢你的帮助,这就是:)我应该移动
srand(时间(空));
的确切位置;在
main
的开头。好的,我把它放在
printf
中的第一个
printf上面,运气不好…@iSpithash;那是因为你没有打印表格。更改
printf(“%d”,i);
intf(“%d”,p[i]);
main
中。哦,我的天啊,我真傻。谢谢你的帮助这就是:)我应该移动到哪里
srand(时间(空))
?在
main
的开头。好吧,我把它放在
main
的第一个
printf
上面,运气不好…@iSpithash;那是因为你没有打印表。把
printf(“%d”,i);
改为
intf(“%d”,p[i]);
改为
main
main
。天哪,我真傻。谢谢你的帮助,就是这样:)