如何生成 1 和用户输入的数字之间的随机数?

Lem*_*zer 3 c++ random

如何创建一个从 1 -> 生成十个随机数的程序RAND_MAX

RAND_MAX必须是用户输入的数字。

#include <iostream>
#include <stdlib.h>

int main()
{
    using namespace std;
    int x;
    int y;


    Random:
    {
        x = rand();
        cout << x << endl;
    }

    y = y + 1;
    if (y == 10) {
        return 0;
    }

    goto Random;
}
Run Code Online (Sandbox Code Playgroud)

Duk*_*ing 5

免责声明: 这是一种生成随机数的快速而肮脏的方法,因为它可能无法完全均匀地生成数字,并且如果( 的上限)定义为小于目标范围,rand您将遇到一些问题。在现代 C++ 中,最好使用标头,按照问题生成随机数在整个范围内均匀分布RAND_MAXrand<random>


就像是:

int main()
{
  int randMax;
  cin >> randMax;
  for (int y = 0; y < 10; y++)
  {
    int x = rand() % randMax; // Range = [0, randMax)
    cout << x+1 << endl; // Range = [1, randMax]
  }
}
Run Code Online (Sandbox Code Playgroud)

哦,一定要尽量避免goto(至少在我看来)。这里有两个 问题