如何让C++从几个词中选择一个随机短语? 我是一个初学者,在编程和C++方面,我尝试制作一个控制台应用程序,在其中输入一个流派,它选择了六种类型的电影中的一个。

如何让C++从几个词中选择一个随机短语? 我是一个初学者,在编程和C++方面,我尝试制作一个控制台应用程序,在其中输入一个流派,它选择了六种类型的电影中的一个。,c++,random,C++,Random,我只是想知道如何让它输出一部6-10集左右的电影 #include <iostream> #include <string> #include <random> #include <string.h> using namespace std; int main() { string cri, dra, rom, war, west, hor, act, scifi, thril, com, movie; cri = &quo

我只是想知道如何让它输出一部6-10集左右的电影

#include <iostream>
#include <string>
#include <random>
#include <string.h>
using namespace std;

int main()
{



    string cri, dra, rom, war, west, hor, act, scifi, thril, com, movie;
    cri = "crime";
    dra = "drama";
    rom = "romance";
    war = "war";
    west = "western";
    hor = "horror";
    act = "action";
    scifi = "scifi";
    thril = "thriller";
    com = "comedy";


    cout << "Welcome to Random Movie Shuffler. Select a genre, and you'll receive a random movie of that genre!\n" << endl;
    cin >> movie;

    if (movie == cri)
    {

        string crim;
        crim = ("movie 1", "movie 2", "movie 3", "movie 4", "movie 5", "movie 6");
    
        cout << "Check out " << crim << endl;

    }

将字符串列表设置为数组,并使用函数从数组中选择条目

高级别示例:

const char* genres[] = {"string 1","string 2","string 3","etc..."};
genres[rand() % SIZE_OF_ARRAY_GENRES];

将不同的短语放入一个向量中,或者洗牌该向量,或者简单地生成一个随机索引[0…size-1]。

您可以将所有电影放入一个std::数组或std::向量中,然后使用算法以相同的概率随机选取一个项目

std::string result;
std::sample(std::begin(movies), std::end(movies), 
            std::back_inserter(result),
            1, std::mt19937{std::random_device{}()});

将所有短语放入一个向量,然后选择第一个。是的,使用向量和std::shuffle。这里有一个int的例子,但是std::string的代码是相同的,在您切换类型并用字符串而不是int填充之后:如果电影的数量是固定的,那么std::array是首选的容器。而且,rand不是生成随机数的好方法。标题中有更好的技术。同意。这是一个C的答案,而不是完全的C++。我不清楚为什么你会在C中为C++中的一个问题写一个解决方案。它们是不同的语言,一个人用一种语言编写的代码通常与另一种语言编写的代码非常不同。你的回答就是一个例子;这是一个很差的C++解决方案,它仍然是一个解决方案,是一个有效的C++,虽然不是习惯用法。