我程序的这一小部分将在一个循环中生成2个随机值,该值将循环无限次,直到满足条件为止。我生成2个值,然后将这两个值添加到totalNum中,然后将totalNum传递给pointMatch变量。我需要pointMatch仅接收第一个总数,然后在整个程序中保持相同的确切数字。之后,将生成下一代数字,然后将其相加。我需要检查总数是否等于上一个pointMatch,如果在满足条件之前不再次生成新数字。我只是似乎无法保持pointMatch不变,它始终等于总数。

最佳答案

问题是您试图通过一种非常复杂的方法来实现一个非常简单的目标,如果您希望pointMatch保持不变,那么不要通过rand()生成第二个随机值,而只需减去第一个pointMatch中的一个。

int rollDice() {
    /* WRONG: just call this once in the whole program */
    srand( time( NULL ));

    /* pick a random value */
    randValue = 1 + rand() % 6;
    secondRandValue = pointMatch - randValue;

    return randValue + secondRandValue; //return random total
}


同样,似乎所有变量都是全局变量,通常这是一个不好的信号。

此结果是随机的,因为默认的随机数生成器可以为randValuesecondRandValue生成随机数,如果您对此方法有很好的论据,请共享它。

关于c - 我似乎无法弄清楚我在做什么错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32790753/

10-11 16:49