这个问题在这里已有答案:

我想生成1到13之间的随机数而不重复我使用这种方法,但它不能确保没有声誉。

for ( i = 0; i < 13; i++)
{
      array[i] = 1 + (rand() % 13);
}

请帮我。 C语言

===============>>#1 票数:12

正如评论所说, Fill an array with numbers 1 through 13 then shuffle the array.

int array[13];

for (int i = 0; i < 13; i++) {     // fill array
    array[i] = i;
    printf("%d,", array[i]);
}
printf("\n done with population \n");
printf("here is the final array\n");

for (int i = 0; i < 13; i++) {    // shuffle array
    int temp = array[i];
    int randomIndex = rand() % 13;

    array[i]           = array[randomIndex];
    array[randomIndex] = temp;
}


for (int i = 0; i < 13; i++) {    // print array
    printf("%d,",array[i]);
}

这是示例输出。

0,1,2,3,4,5,6,7,8,9,10,11,12,
 done with population 
here is the final array
11,4,5,6,10,8,7,1,0,9,2,12,3,

注意:我使用了最基本的排序。 如果你愿意,可以使用更好的一个。

  ask by user3552818 translate from so

未解决问题?本站智能推荐:

8回复

我需要在C中生成随机数[重复]

可能重复: 如何在C中生成随机数? rand()的实现 在Blender3D中生成随机地形 我需要C中的高质量随机数,但我不知道该怎么做。 我需要能够从1-100获得数字。 任何帮助或可能指向我可以找到帮助的地方。
2回复

生成随机数,而无需在C中重复

下面的结果可以生成随机数,但仍然会重复数字。 猜猜if else语句中是否有smtg错误? 额外: 问题是: 将条目生成为随机数,并重复创建新数字,直到找到合法的条目值为止。 因此,元素交换不是解决方案。
2回复

在C中生成两个不同的随机数[重复]

这个问题已经在这里有了答案: srand(time(NULL))改变种子值的速度不够快[重复] 6个答案 我正在尝试在给定范围内在C中生成两个不同的随机数。范围是 但是我的以下代码有时会工作,有时会失败,这背后的原因是什么?
4回复

随机数生成器目标c [重复]

可能重复: 如何生成介于0和1之间的随机浮点数? 我想生成一个介于0和1(均匀分布)之间的随机数,我使用: 但是,这仅产生0.00000 我用了 它在间隔中返回一个随机数,但我不确定它是否均匀分布。 为什么第一个功能不能按预期工作?
3回复

C随机数[重复项]

这个问题已经在这里有了答案: 为什么我总是用rand()得到相同的随机数序列? 11个答案 这是我的代码 我想得到一个19及以下的随机数,但是每次编译并运行它时,它只会给我1 。 有人可以告诉我我在做什么错吗?
5回复

使用C生成不重复的随机数列表?

我正在制作一个益智游戏,我想生成一个在一些限制之间的随机数列表。 我已经使用过rand和srand函数,但它也为我提供了重复值。 我想生成一个没有重复的随机列表,我该怎么做?
6回复

生成唯一的随机数,除了C中的特定随机数[重复]

这个问题在这里已有答案: O(1)中的唯一(非重复)随机数? 21个答案 我想知道,除了特定的随机数之外,我怎么能生成独特的随机数。 例如,如果我想生成范围1 to 10 except from 3数字, 1 to 10 except from 3 ,输出应该是
2回复

在C / C ++中实现随机数生成器[重复]

这个问题在这里已有答案: 可以使用rand()来生成可预测的数据吗? 4个答案 我对C中随机数生成器的实现感到有些困惑,这也明显不同于C ++中的 如果我理解正确的话,对'srand(seed)'的调用会以某种方式初始化一个可由'rand()'访问的隐藏变量
1回复

如何根据用户输入生成随机数但不重复并且在一定范围内?

目前,我正在尝试一些有关随机数的代码。 问题是,当我运行程序时,输入任意数字(例如12),我有时会得到正确的答案,有时会得到错误的答案。 正确答案必须是基于用户输入的任何非重复随机数。 (例如输入5,输出必须为1. seat [12] = 1、2。seat [19] = 1,...,5。s
2回复

需要生成4个随机数,而无需在C编程中重复。 1到4

我想使用C编程以随机方式生成数字1到4。 我已经准备好直接在while循环中打印a[0] ,对于其他元素,程序将检查从a[1]到a[3]的新数字是否与前面的任何元素相同。 已经为此创建了一个功能。 int checkarray(int *x, int y) 该函数通过减少传递的地址来