c语言里用rand为什么每次执行总是产生一样的随机数
1. c语言rand()。为什么两次调用number,生成的随机数一直相同大神帮忙呀!
# include <stdio.h>
#include<time.h>
#include<stdlib.h>
int number(int &n)
{
srand(n);
return rand() % 100 + 1;
}
int main()
{
int a=200,b=0,s=300;
a=number(a);
b=number(s);
s=a+b;
printf("%d+%d=%d\n",a,b,s);
}
小兄弟,我觉得你的代码有很大的问题,首先,为什么要在number里面弄一个参数,而在number()函数里面又不用这个调用的参数,这是我的一个疑问。然后我把你的代码稍微改了一下,已经可以随机出不同的两个数,不知道是不是你想要的。有什么疑问请追问!
2. c语言中rand()函数生成的随机数怎么关闭软件重新生成的时候又是一样的啊
你按下面这个程序运行就不会出现逆说的情况:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
int a;
srand(time(0));
a=rand()%10;
printf("%d\n",a);
}
原因是srand()每次都将系统当前时间设成了随即函数的种子,那么每次执行程序的种子都是不同的,产生的随机数也就不同了
3. C语言:为什么每次产生的rand随机数全都一样例如第一个是9,后面全都是9
/*
Enter the number of sets: enter q to stop.
5 9
How many sides and how many dice:3
Here are 5 sets of 3 9-sided throws.
25 18 14 13 17
How many sets? Enter q to stop.
q
Press any key to continue
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intdiceroll(intnum,intside);//返回骰子产生的数字的总和
intmain(void){
intsets,side,dice;//sets为回合数,side面,dice:骰子个数
inti;//变量初始化
srand((unsigned)time(NULL));//应在main()初始化随机数种子
printf("Enterthenumberofsets:enterqtostop. ");//set组
while(scanf("%d",&sets)==1&&sets>0){
printf("Howmanysidesandhowmanydice:");
if(scanf("%d%d",&side,&dice)==2){
printf("Hereare%dsetsof%d%d-sidedthrows. ",sets,dice,side);
for(i=0;i<sets;i++)//0-sets个回合
printf("%d",diceroll(side,dice));//打印出返回值
printf(" ");
printf("Howmanysets?Enterqtostop. ");
}
elseprintf("inputside,anddice: ");
}
return0;
}
intdiceroll(intside,intdice){
inti,sum;
for(i=0,sum=0;i<dice;i++)
sum+=rand()%side+1;//产生3个骰子摇出的总和sum
returnsum;//返回3个骰子摇出的总数sum
}
4. C语言中的rand()函数,说是产生随机数的函数,可是为什么我在使用时产生的随机数就没变过呢
我记得rand()是需要参数的,不同参数导致不同的序列,比如用当前时间作为参数就是一个不错的选择。
5. c语言里用rand为什么每次执行总是产生一样的随机数
需要首先使用随机数“种子”初始化,srand函数:
#include
<stdlib.h>
#include
<stdio.h>
#include
<time.h>//使用当前时钟做种子
void
main(
void
)
{
int
i;
srand(
(unsigned)time(
NULL
)
);//初始化随机数
/*
打印10个随机数.
*/
for(
i
=
0;
i
<
10;i++
)
printf(
"
%d\n",
rand()
);
}
6. C语言用rand函数为什么每次都是相同的随机数
生成随机数的时候没有初始化种子,每次生成的都是相同的随机序列,
可以使用时间初始化。
在main函数的第一句加上srand(time(null));
再调用rand()生成随机数。
需要包含以下头文件
#include
#include
7. c语言用了rand()为什么每次都是一样的随机数
你没有初始化随机种子。在main函数里事先加上srand(time(NULL))。
8. c语言rand()每次执行产生的结果都一样
用rand之前,用srand初始化种子
9. c语言 产生一个随机数,如何让它每一次运行出现不同的随机数结果
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
inta;
srand((unsigned)time(NULL));//用时间初始化随机数生成种子
a=rand()%10;
printf("%d ",a);
}
2
Pressanykeytocontinue
9
Pressanykeytocontinue