1.生成随机数rand()函数
2.由于rand()函数生成的结果都是同一个值,所以需要一个种子函数,这就是srand()函数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
printf("%d\n",rand());
}
3.如果想生成小于某个数的随机数,就直接用rand()%n就可以啦
比如生成10以内的随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
printf("%d\n",rand()%10);
}
4.自己试着模拟一下随便输入一个种子,然后生成相应的随机数的函数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int seed;
printf("请输入一个种子,以-123结束\n");
scanf("%d",&seed);
srand(seed);
printf("随机数是%d\n",rand());
while(seed!=-123)
{
printf("请输入一个种子,以-123结束\n");
scanf("%d",&seed);
srand(seed);
printf("随机数是%d\n",rand());
}
}
5.如何产生a到b之间的随机数
5.一个别人自己写的利用随机数函数
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void SCR_VOID_CW_GEN( )
{
int i;
char *buffer=new char;
srand( (unsigned)time( NULL ) );
int seed=rand();
srand(seed);
for( i = 0; i < 16;i++ )
{
buffer[i]=(char)(rand()%256);
}
printf( " 0x%02x/n", buffer[0]);
buffer[16]='/0';
}
int main(void)
{
SCR_VOID_CW_GEN();
}