c++ - rand () for c++ with variables

标签 c++ srand random

int userHP = 100;
int enemyHP = rand() % ((userHP - 50) - (userHP - 75)) + 1;

好吧,出于某种原因,这似乎无法正常工作,我正在尝试为敌人获得 50 -25 马力。

也 id 而不是它是一个百分比......就像

int enemyHP = rand() % ((userHP / 50%) - (userHP / 75%)) + 1;

但我喜欢坚持使用整数而不是乱用 float 或 double ...有人可以帮助我吗?

最佳答案

获取 [ Minimum , Maximum ] 范围内的随机数:

使用这个整数近似值:

int RandomNumber = Minimum + rand() % (Maximum - Minimum + 1);

并确保(最大值 - 最小值)<= RAND_MAX


或者使用这个更好的 float :

double RandomNumber = Minimum + rand() * (double)(Maximum - Minimum) / RAND_MAX;

关于c++ - rand () for c++ with variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982369/

相关文章:

c++ - 如何在 Scons 中为具有相对路径的构建目标创建别名?

C++14 lambda 的默认参数类型推导取决于前面的参数

arrays - 如何创建带有随机数的数组?

java - C 与 Java 中的随机数生成

c++ - srand() 的问题,C++

c++ - c++中函数rand()使用的公式

c++ - 如何限制窗口的文本区域?

c++ - 可变函数包装器

c++ - 我在用 srand 在 C++ 中构建非重复随机数组时做错了什么?

c - srand() — 为什么只调用一次?