生成随机数(在限制范围内)代码超过上限

Abh*_*tre -2 c++ random

我的计算机科学C++书说,为了生成具有下限(在这种情况下为15)和上限(在这种情况下为50)的随机数,我们必须使用以下代码.但是当我使用它时,我的输出为53,52,49,15.是否有原因导致程序提供超出上限的结果或代码错误.

#include <iostream>
#include <stdlib.h>

using namespace std;
int main(){
int i,rdno;
for(i=1;i<5;++i){
        rdno=(rand()%50)+15;
    cout <<rdno<<endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

如果要在[a; b)中生成数字,请使用

rdno = rand() % (b-a) + a
Run Code Online (Sandbox Code Playgroud)