k=rand()%100+1;
这样就能生成1——100的随机数。其原理就是随便产生一个整数,但是这是伪随机数,也就是说,你再次去运行它,得到的数还是原来的数。就比如在玩qq的时候,有一个掷骰子的表情,试想,如果每次得到的点数都一样就没有意义了。具体的rand()用法可以参考这个博主的文章
那么我就来说点跟这个不一样的东西。
1.把种子放在外边:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i,k;
srand((unsigned)time(0));
for(i=0;i<10;i++)
{
k=rand()%100+1; //rand()%100表示取100以内的随机数
printf( " k=%d\n", k );
}
return 0;
}
2.放在里面:
int main()
{
int i,k;
for(i=0;i<10;i++)
{
srand((unsigned)time(0));
k=rand()%100+1; //rand()%100表示取100以内的随机数
printf( " k=%d\n", k );
}
return 0;
}
把种子放在循环里面导致生成的随机数一样的原因在于程序运行的时间太短了,短到小于一秒,所以其实种子还是一样的。
所以还可以这样玩:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i,k;
for(i=0;i<10;i++)
{
srand((unsigned)time(0));
system("pause");
srand((unsigned)time(0));
k=rand()%100+1; //rand()%100表示取100以内的随机数
printf( " k=%d\n", k );
}
return 0;
}
中间我连续按了两次任意键,所以就得到两个33,其他的间隔时间不一样,这样就能得到不同的随机数了。