C++中的混洗?

C++中的混洗?,c++,C++,大家好,我刚做了一个程序,可以得到一个输入,如果输入中有特定的单词,它会给我一个回复,例如,如果我写“嘿”,它会回复我并说“你好”。但我希望它随机给出多个回复。例如,第一次它说你好,然后你好。 可以在C++中完成吗?< /P> < P>让 char *text[20]; 是你的字符串数组 然后,您可以通过以下方式随机拾取字符串: i = rand() % 20; printf("%s", text[i]); 只需制作一个2D字符数组来存储重播,并生成一个随机数作为所选重播的索引: #incl

大家好,我刚做了一个程序,可以得到一个输入,如果输入中有特定的单词,它会给我一个回复,例如,如果我写“嘿”,它会回复我并说“你好”。但我希望它随机给出多个回复。例如,第一次它说你好,然后你好。 可以在C++中完成吗?< /P> < P>让

char *text[20];
是你的字符串数组

然后,您可以通过以下方式随机拾取字符串:

i = rand() % 20;
printf("%s", text[i]);

只需制作一个2D字符数组来存储重播,并生成一个随机数作为所选重播的索引:

#include <stdio.h>
#include <stdlib.h> // this is where srand and rand defined
#include <time.h>

int main(void) {
    int picked;
    char *replay[3] = { // this is your list of replays
        "hey",
        "hello",
        "how are you",
        // ...
    };
    srand(time(NULL)); // seed for the pseudo-random number generator initialization
    picked = rand()%3; // rest of division by 3 so random integer bitween 0 and 2 
    printf("%s", replay[picked]); // then print the replay of the random picked index

    return 0;
}

您想从预定义的答复中给出答复,还是取决于输入。若这取决于输入,那个么你们正在研究人工智能,而简单的方法不会让工人们胡乱洗牌!这是在PHP中完成的。在再次看到一个响应之前,您想使用每个响应一次吗?如果是这样,std::shuffle.It可以完成。根据你想要它的安装方式,我会考虑一个数组,你可以根据回复选择一个随机索引。它可以在C++中完成吗?是的,它可以。请下一位病人。你能给我解释一下吗??每条线都做什么?我找不到任何东西…char*[20]声明字符串数组。rand%20将输出一个从0到19的数字,并将该数字用作字符串数组的索引,以打印一个随机输出。你把我弄糊涂了@FaizAhmed有c++的文档:你的评论是错误的:如果你做一个模3运算,你会得到一个介于0和2之间的整数,而不是0和3Hey!这两行是什么意思:srandtimeNULL;拾取=兰特%3;Starnd和rand也没有定义,给了我一个错误!!!很抱歉,您必须包含stdlib。h请查看更正的代码!rand是一个随机数,通过将它的其余部分除以2,我们得到一个0到3之间的随机数。如果没有调用sr,那么每次运行都会得到相同的随机数,因为伪随机数生成器是使用作为种子传递的参数初始化的。检查这个
Success  time: 0 memory: 2292 signal:0
hey
Success  time: 0 memory: 2248 signal:0
how are you
Success  time: 0 memory: 2292 signal:0
how are you
Success  time: 0 memory: 2292 signal:0
hey
Success  time: 0 memory: 2248 signal:0
hello