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