将值存储到数组中

Storing values into an array

本文关键字:数组 存储      更新时间:2023-10-16

我正在尝试将随机生成的数字存储到字符串newdeck中。但是,当我测试它时,所有输出的数字都不在上面生成的随机数顺序中(即5、24,10、33、41。它的0,1,2,3,4,5)。用户输入他们要使用多少套牌(int deck)。我想将随机数,numvalue,生成并存储在我的数组newdeck中。

有什么想法?

在这一行中:

 newdeck[numvalue] = numvalue;

您总是一遍又一遍地将特定的卡放回原始位置。更糟糕的是:您访问字符串的不存在元素。

如果您希望结果在totaldeck更改中:

totaldeck[numvalue] = 0;

(这就是为什么您只得到零 - 将它们自己放在结果上...),

totaldeck[loop] = numvalue;

不需要newdeck变量。要记住是否已经绘制卡,您可以尝试以下方法:

std::vector<bool> drawn(52 * deck);
for (loop =0; loop < 52*deck; loop++)
{
    numvalue = rand()%(52*deck)+1;
    if (drawn[numvalue-1])
    {
        --loop;
        continue; //to be explicit
    }
    else 
    {
        suitvalue = numvalue % 4 + 1;
        drawn[numvalue-1] = true;
        totaldeck[loop] = numvalue;
        //...

另外,使用goto被认为是非常糟糕的编程实践。避免此处的最简单方法是在上面的摘要中给出的。但是,您应该以更可读的方式工作。

,而且,您应该将代码划分为较小的函数。您更容易编写,理解和维护它们。