兰德函数赢得';I don’我不能像C中所说的那样工作
我想用随机数填充表格,并计算填充所需的时间 时间似乎还可以,但在我打印表格后,数字不是随机的 它打印:01234567889兰德函数赢得';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
#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
。天哪,我真傻。谢谢你的帮助,就是这样:)