我程序的这一小部分将在一个循环中生成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
}
同样,似乎所有变量都是全局变量,通常这是一个不好的信号。
此结果是随机的,因为默认的随机数生成器可以为
randValue
和secondRandValue
生成随机数,如果您对此方法有很好的论据,请共享它。关于c - 我似乎无法弄清楚我在做什么错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32790753/