C语言 随机数
C语言 随机数
time、rand、srand
#include <time.h>
time_t time(time_t *t);
功能:获取当前系统时间
参数:常设置为NULL
返回值:当前系统时间, time_t 相当于long类型,单位为毫秒
#include <stdlib.h> void srand(unsigned int seed);
功能:用来设置rand()产生随机数时的随机种子
参数:如果每次seed相等,rand()产生随机数相等
返回值:无
#include <stdlib.h> int rand(void);
功能:返回一个随机数值
参数:无
返回值:随机数
案例
#include <stdio.h> #include <time.h> #include <stdlib.h> int main() { time_t tm = time(NULL);//得到系统时间 srand((unsigned int)tm);//随机种子只需要设置一次即可 int r = rand(); printf("r = %d\n", r); return 0; }
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { // 添加随机数种子 srand((size_t)time(NULL)); for (size_t i = 0; i < 100; i++) { // 输出一个随机数 // 获取0-99:rand()%100 // 获取50-100:rand()%51+50 printf("%d\n", rand()%100); } return 0; }
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { // 双色球 6个红球 1-32、1个蓝球 1-16 srand((size_t)time(NULL)); int arr[6] = { 0 }; int value = 0; int flag = 0; int j; // 取红球 for (int i = 0; i < 6; i++) { value = rand() % 32 + 1; // 去重 for (j = 0; j < flag; j++) { if (value==arr[j]) { i--; break; } } // 加入数组 if (j==flag) { arr[flag] = value; flag++; } } // 输出结果 for (int i = 0; i < 6; i++) { printf("%d ", arr[i]); } // 取蓝球 printf("+ %d\n", rand() % 16 + 1); return 0; }