gpt4 book ai didi

c - 如何从我选择的三个整数中选择一个随机整数

转载 作者:行者123 更新时间:2023-11-30 20:08:51 25 4
gpt4 key购买 nike

我正在制作一个问答游戏,并且在函数中有问题来获得一个随机问题,我正在尝试选择一个随机整数,即 0、1 或 2。根据我得到的结果,我将指向一个函数并运行那个功能。我想然后做到这一点,这样当我再次这样做时,我可以确保我不会再次得到这个整数,以免运行相同的问题。

这就是我现在拥有的

  srand(time(NULL));
int randomnumber;
randomnumber = rand() % 3;

但它只是获取 0 到 2 之间的随机整数,然后不允许我选择三个直接整数,然后在运行时将它们从该数组中取出。

最佳答案

有很多方法可供选择。其中之一是创建一个整数数组,在您的情况下,它将大小为 3,其中包含数字 0...2。现在打乱这个数组。有许多算法可用于执行此操作。一个例子是 this .
现在,只需循环这个新创建的随机数组即可调用函数。在这种情况下,您的两个要求都会得到满足。 问题将按随机顺序排列,并且您不会再次调用同一个号码

此代码示例将帮助您入门:

void shuffle ( int arr[], int n ) {
srand ( time(NULL) );
//this will shuffle the array
for (int i = n-1; i > 0; i--){
// Pick a random index from 0 to i-1
int j = rand() % (i);
// Swap arr[i] with the element at random index
swap(&arr[i], &arr[j]);
}
}
int main(){
int arr[] = {0, 1, 2};
shuffle(arr, 3);
int i;
for(i = 0; i < 3; i++){
// call the function with shuffled array
}
}

您需要编写交换函数

关于c - 如何从我选择的三个整数中选择一个随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com