我正在制作摇滚,纸张,剪刀游戏,我设置计算机选择的方法之一是通过rand()。我#include <ctime>
,使用srand(time(0));
在main的开头播种rand,并在computerWeaponChoiceV = (rand() % 3) + 1;
的函数定义中调用它。但是,当我测试我的程序时,它总是将computerWeaponChoiceV
打印为0.
我对rand()
做错了什么?如果您需要更多我的代码,请告诉我。
答案 0 :(得分:-4)
我不习惯用c ++(只用c ++编程一次)但我认为这个问题是关于rand声明的。
Try using rand() % 3 + 1;
如果这对于时间(0)不起作用,则可能需要“NOW”值才能正确随机化(通常编程语言需要几毫秒来随机化)。 PD:我对时间的说法可能是错的,如果这两个解决方案没有为你服务,那就在那里发表评论。
有一个从1到10工作的兰德的例子:
/* rand example: guess the number */
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main ()
{
int iSecret, iGuess;
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 1 and 10: */
iSecret = rand() % 10 + 1;
do {
printf ("Guess the number (1 to 10): ");
scanf ("%d",&iGuess);
if (iSecret<iGuess) puts ("The secret number is lower");
else if (iSecret>iGuess) puts ("The secret number is higher");
} while (iSecret!=iGuess);
puts ("Congratulations!");
return 0;
}
干杯!