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;
}
使用案例:双色球

 

posted @ 2020-02-27 19:34  kevin.Xiang  阅读(369)  评论(0编辑  收藏  举报