我似乎无法弄清楚我做错了什么?

时间:2015-09-25 21:14:25

标签: c

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

1 个答案:

答案 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生成随机数,如果您对此方法有任何好的论据,请分享。