1.不写srand(),那么默认是以1为基准数。
2,随机产生指定范围的一个数:
总结:假如是要产生 0~50 的随机数,就写 rand()%51.
假如要产生 50~100的随机数,那么先产生0~50的,然后再加上50
假如要产生70~100的随机数,就写rand()%31,先产生0~30的随机数,然后再加上70。
以上就是产生指定范围内的一个随机数的写法!(用的较多)
随机产生指定一组数中的一个?!
假如我有一组数,我要随机的产生这组数中的一个,我产生的随机数只能是这些数中的一个。
思路:将这些数装到一个数组中,
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand((unsigned int) time(NULL));//当前系统时间 int i=0,a; int arr[10] = { 1,23,455,665,3356,776,773,1234,654,3445 }; while (i <= 20) { a = rand() % 10;//下标是0~9,所以对10求余。 printf("%d\n", arr[a]); i += 1; } system("pause"); return 0; }
在一组数中随机得到一个数的这样的算法:把数先放到数组中,然后随机取下标。