【问题标题】:What does " rand()%3-1 " mean in c++? [closed]“ rand()%3-1 ”在 C++ 中是什么意思? [关闭]
【发布时间】:2018-01-24 08:49:46
【问题描述】:

程序创建一个二维数组(名为“table”)并用随机数(-1、0 或 1)填充数组。

int main() {
    srand(time(0));  
    const int ROWS=3;
    const int COLS=4;

    int table[ROWS][COLS];

    for (int i = 0; i < ROWS; i ++) {
        for (int j = 0; j < COLS; j++)   {               
            table[i][j] = rand()%3-1;                
        }
    }

    for (int i = 0; i < ROWS; i ++)  {
        for (int j = 0; j < COLS; j++)
            cout << setw(3) << table[i][j];

        cout << endl;
    }

    return 0;
}

【问题讨论】:

  • 提示% operator...
  • 我建议您选择one or two beginners book 并阅读算术运算符。或者搜索模运算符。阅读有关 std::rand 的信息可能也会有所帮助。
  • 哪一部分你不明白?如果数组填充了随机数(-1、0 或 1),那么该表达式可能会生成介于 -1 和 1 之间的随机数......
  • x%y 返回 x 除以 y 后的剩余部分。所以对于只能返回 0 或 1 或 2 的 x%3。现在从中减去 1 并猜测你可以从随机整数中得到什么。 % 是modulo operator
  • 哦,现在我明白了。我对“3-1”部分感到困惑,但我现在明白了。谢谢!

标签: c++ random srand


【解决方案1】:

rand() % 3 给出一个 0 --> 2

范围内的数字

【讨论】:

  • 错误 + 不回答问题 + 这个问题不应该回答,因为它有点跑题了。
  • 范围是 0 -> 2
猜你喜欢
  • 1970-01-01
  • 2016-01-07
  • 2022-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 2020-02-15
相关资源
最近更新 更多