c++ - 如何给 Rand() 条件

标签 c++

第一次堆栈溢出。

我有这个作业要上课,我们有一个猜谜游戏,我们的程序必须生成一个由用户定义的长度为 n 且 n 不同的大写字母组成的字符串。我完成了大部分作业,但在生成字符串时,我迷失了如何将这些条件放在适当的位置以使其正常工作。

char create_sequence(){
   return rand() % 26 + 65;
}

你有什么建议吗?

最佳答案

如果您知道序列长度,则不需要不同字符的数量。这是因为您需要 length <= characters .

创建 n 的序列独特的字符写一个单独的函数:

vector<char> create_sequence(int n) {
    vector<char> letters;
    for (char ch = 'A'; ch <= 'Z'; ++ch) {
        letters.push_back(ch);
    }

    vector<char> sequence;
    for (int i = 0; i < n; ++i) {
        int index = rand() % letters.size();
        sequence.push_back(letters[index]);
        letters.erase(letters.begin() + index, letters.begin() + index + 1);
    }

    return sequence;
}

关于c++ - 如何给 Rand() 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545824/

相关文章:

c++ - 为什么动态检查 C++0x 的 `noexcept`?

c++ - boost 几何 : composing polygons from many points

下面这段代码的 C++ 等效项 (sprintf)

C++ shared_ptr 释放多个引用

c++ - 为包装字符串流的类重载 ostream 运算符

c++ - 析构函数单元测试会被优化掉吗?

java - 用 C++ 编写的句法和语义代码完成框架

c++ - 尝试最小化构架时出错

c++ - 如何在 C++ 中检查两个或多个时间段是否相互重叠?

c++ - 如何编码平面 4 :2:0 (fourcc P010)