c++ - 如何随机化开关?

标签 c++ function switch-statement

这就是我目前所拥有的。这个程序的要点是,如果有人输入数字 1..3,他们将获得其中一个奖品,但我不希望奖品每次都在同一扇门后面。我如何让它们随机,所以也许百万美元在 2 号门后面而不是 1 号门后面?

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
    int doorNumber;
    //int door1, door2, door3;

    cout << "Pick a door, 1, 2, or 3" << endl;
    cin >> doorNumber;

    switch (doorNumber) {
    case 1:
        cout << "you win a million dollars" << endl;
        break;
    case 2:
        cout << "you win detergent" << endl;
        break;
    case 3:
        cout << "you win a dishwasher" << endl;
        break;
    }

    return 0;
}

最佳答案

case 语句需要在编译时必须知道的整数值,因此不幸的是,您不能随机移动 switch 语句中的门号。 但是,您可以将一个随机数添加到用户的输入中并以 3 为模,然后加一以将总和投影回 1,2 或 3。

关于c++ - 如何随机化开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47170352/

相关文章:

c++ - 编译器似乎不接受 Agent 类

javascript - 在 Javascript 中将 JSON 值设置为 HTML 表?

arrays - 快速切换转换时出错

ios - 使用元组 Swift 3 在单个 switch-case 中实现多个间隔

c++ - 通过定制的 printf 函数跨平台打印 64 位整数

c++ - 使用 ffmpeg 从图像创建视频时为每个帧添加水印

c - 了解在另一个 C 中调用一个函数

PHP 和 MySQL : Arranging rows from separate tables together and expression to determine row origin

Java,奇怪的 switch 语句行为

c++ - 是否建议将指向堆内存的指针始终声明为 `const`?