int rand (void);
void 表示不需要传递参数。 rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。#include <stdio.h> #include <stdlib.h> int main(){ int a = rand(); printf("%d\n",a); return 0; }运行结果举例:
void srand (unsigned int seed);它需要一个 unsigned int 类型的参数。在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同。
srand((unsigned)time(NULL));有兴趣的读者请猛击这里自行研究 time() 函数的用法,本节我们不再过多讲解。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int a; srand((unsigned)time(NULL)); a = rand(); printf("%d\n", a); return 0; }多次运行程序,会发现每次生成的随机数都不一样了。但是,这些随机数会有逐渐增大或者逐渐减小的趋势,这是因为我们以时间为种子,时间是逐渐增大的,结合上面的正态分布图,很容易推断出随机数也会逐渐增大或者减小。
int a = rand() % 10; //产生0~9的随机数,注意10会被整除如果要规定上下限:
int a = rand() % 51 + 13; //产生13~63的随机数分析:取模即取余,
rand()%51+13
我们可以看成两部分:rand()%51
是产生 0~50 的随机数,后面+13
保证 a 最小只能是 13,最大就是 50+13=63。#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int a; srand((unsigned)time(NULL)); a = rand() % 51 + 13; printf("%d\n",a); return 0; }
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int a, i; //使用for循环生成10个随机数 for (i = 0; i < 10; i++) { srand((unsigned)time(NULL)); a = rand(); printf("%d ", a); } return 0; }运行结果举例:
本文链接:http://task.lmcjl.com/news/8381.html