适合对象 c语言初学者 总结语言用色,个人强调用红色,注意为易错点,若有问题请告诉我谢谢。(建议通过目录观看)。一定要自己动手打代码。
rand函数
是生成随机数的函数,但实则是伪随机数。(即是同一个值)
格式
#include<stdlib.h>
int a = rand();
控制rand的值可以采用改变种子值的方法。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{int a = rand();while (36){printf("%d\n", a);Sleep(1000);}return 0;
}
那么如何的到真随机数呢?
这时要用srand函数来改变rand的种子值。
用法
#include<stdlib.h>
srand((unsigned int)time(NULL));
int a = rand();
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{/*int a = rand();while (36){printf("%d\n", a);Sleep(1000);}*/srand((unsigned int)time(NULL));while (36){int res = rand() % 100 + 1;printf("%d\n", res);Sleep(1000);}return 0;
}
知道代码如何写即可。
详细讲解:
rand()
即rand是int型且不需要参数。他有一个种子值,通过种子值用算法可以得到一个随机数(伪)
可以通过srand函数改变种子值,进而改变随机数。
而srand函数
格式
#include<stdlib.h>
srand((unsigned int seed);
也需要一个参数作为种子值给rand。
那么这个参数也要是变化的,才能得到随机数。
于是用时间戳(time(NULL);)因为时间一直变化。
time()是一个函数
格式
#include<time.h>
int a = time(NULL);(NILL表示空指针)
这时用srand去接受time(NULL)
因为srand参数是unsigned int 型,
所以用unsigned int 强制转换time(NULL)。
即得到真随机数。
#include<stdlib.h>
#include<time.h>
srand( (unsigned int) time(NULL) ) ;
int a = rand();
那么如何控制随机数的值呢?
int a = rand()% ( b - a + 1) + a ;
值是 a~~b
常用 int a = rand () % 100 + 1;
值是1~~100。