我的程序的这一小部分将在循环中生成2个随机值,循环将循环无限次,直到满足条件。我生成2个值,然后将这两个值添加到totalNum中,然后将totalNum传递给pointMatch变量。我需要pointMatch只接收第一个总数,然后在整个程序中保持相同的确切数字。之后,将生成下一代数字,然后将其添加到总数中。我需要检查该总数是否等于之前的pointMatch,如果在满足条件之前不再生成新数字。我似乎无法保持pointMatch相同,它始终等于总数。
答案 0 :(得分:2)
问题是如果你希望pointMatch
保持不变,那么你试图通过非常复杂的方法实现一个非常简单的目标,然后通过{{1}生成第二个随机值相反,只需从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
生成随机数,如果您对此方法有任何好的论据,请分享。