结构 C 中给定数字的随机数

Random number from given numbers in structure C

我的结构是这样设置的

struct judges
{
    char surname[20];
    int id;
    struct judges *wsk;
}

如何从给定的 ID 中获取随机数?例如,我添加了 3 个 ID 分别为 3、7 和 253 的评委,有没有办法只从这些评委中获取随机数?

从这些结构的数组中随机选择一个项目并读取其 ID。

您可以使用 srand() 设置您的随机种子(在本例中为 ID),然后使用 rand() 为每个评委获取您的随机数。您也可以使用 [Glib Random Number(https://developer.gnome.org/glib/2.42/glib-Random-Numbers.html) 而不是标准 C 函数。

是的,从数组中随机选择一个数。
但是要在你的数组中选择一个,你必须使用:

rand() % arrayLength;
//in your case:
rand() % 3; //returns 0,1,or 2`
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main(){
       struct judges judge;
       int index,i;
       time_t t;
       srand((unsigned int)time(&t));

       int ids[]={3,7,253};
       index=rand() % 3;
       judge.id=ids[index];
}

你需要构建一个ids数组,然后使用srand()和rand()生成一个随机索引并将其分配给judge.id字段。


如果您想了解有关生成随机数的更多信息 http://www.tutorialspoint.com/c_standard_library/c_function_rand.htm http://www.tutorialspoint.com/c_standard_library/c_function_srand.htm