只是个简单的问题。
我对c++很陌生。这里我创建了一个随机数生成器,它应该从1-3中得到一个随机数,然后每个数字对应于石头纸或剪刀。
问题是,它每次都要用剪刀!!我做错什么了?

#include<stdio.h>
#include<stdlib.h>

int i, a, b;
int playerschoice, compchoice;

main()
{
    compchoice=rand() %3+1;
    printf("compchoice=%d",compchoice);

    if (compchoice == 1)
    {
        printf("\nThe computer is going with: Rock...\n");
        b = 0;
    }
    else if (compchoice == 2)
    {
        printf("\nThe computer is going with: Paper...\n");
        b = 1;
    }
    else if (compchoice == 3)
    {
        printf("\nThe computer is going with: Scissors...\n");
        b = 2;
    }

    system("pause");
    return 0;
}

最佳答案

您需要为随机数生成器设定一个值,该值在每次运行时都会不同。
在呼叫rand()

/* initialize random seed: */
  srand (time(NULL));

编辑-添加了更多信息
rand()函数是一个pseudo-random number generator。这基本上意味着,给定一个初始启动条件,函数将产生一个看似随机的数字序列。
srand将为您设置初始启动条件。time(NULL)只返回自1970年1月1日以来的秒数。
查看本文以获取更多信息:http://www.cplusplus.com/articles/EywTURfi/

10-08 01:30