- 需求:比如生成min到max区域内的随机数
- 需要用到的库
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <time.h>
- 实现的方法封装
//@brief:产生[min_val,max_val]范围内的随机数
//@param:min_val:最小值
//@param:max_val:最大值
//@return:生成的随机数
int randNum(int min_val,int max_val)
{
//判断前检查 min_val 和 max_val的值大小对比
if (min_val > max_val)
{
cout << "不符合要求,min_val必须小等于max_val的值。" << endl;
return 0;
}
//
int num_val = rand()%(max_val-min_val+1) + min_val;
return num_val;
}
- 备注:需要先调用
srand((unsigned int)(time(NULL)));
- 原因:因为C++本质上是没有随机数功能,这是为了根据时间生成随机值,保证随机性
- 实例测试
// RandomNum.cpp : 定义控制台应用程序的入口点。
//需求:明明的随机数
#include "stdafx.h"
using namespace std;
//@brief:产生[min_val,max_val]范围内的随机数
//@param:min_val:最小值
//@param:max_val:最大值
//@return:生成的随机数
int randNum(int min_val,int max_val)
{
//判断前检查 min_val 和 max_val的值大小对比
if (min_val > max_val)
{
cout << "不符合要求,min_val必须小等于max_val的值。" << endl;
return 0;
}
//
int num_val = rand()%(max_val-min_val+1) + min_val;
return num_val;
}
int _tmain(int argc, _TCHAR* argv[])
{
srand((unsigned int)(time(NULL))); //根据时间种子产生无规律的随机数
int i = 0;
//测试
for (;i < 10 ; i++)
{
int num = randNum(1,100);
cout << "生成随机数" << num << endl;
}
//cout << rand() << endl;
system("pause");
return 0;
}
运行结果: