我试图在2到11之间生成随机数,下面是我的代码:
srand(time(NULL));
int card;
card = rand() % 11 + 2;
但是,目前我的代码正在创建2-12的数字。我怎样才能解决这个问题,这样才能在2-11之间产生数字呢?
发布于 2020-01-23 19:18:59
range % 11
有11个可能的值(0到10),但是您想要10个可能的值(2到11),所以首先将mod更改为% 10
。接下来,由于rand() % 10
返回的值从0开始,并且您希望从2开始,所以添加2:
card = rand() % 10 + 2;
https://stackoverflow.com/questions/59885237
复制相似问题