我需要一个 11 到 99 之间数字的随机函数。我写了这个:
int random (void){
int i2;
i2=11+(rand()%99);
return i2;
}
但数字超过 99。为什么?
我需要一个 11 到 99 之间数字的随机函数。我写了这个:
int random (void){
int i2;
i2=11+(rand()%99);
return i2;
}
但数字超过 99。为什么?
因为如果rand()返回98,那么98 % 99就是98和98 + 11 > 99。
为此,您需要
i2 = 11 + ( rand() % 89 );
rand() % 89会给你数字[0, 88],所以+11会变成[11, 99]。
顺便说一句,不要忘记srand( time( NULL ) ),否则它(很可能)会一直生成相同的(伪)随机数序列。
(值 % 100 )在 0 到 99 的范围内。您添加 11,因此范围在 11 到 110 之间。
尝试这样的事情:
int random (int min,int max){
return min+(rand()%(max-min));
}
参数 min 和 max 表示数字的范围
因为rand()%99返回一个 0 到 98 之间的值;然后添加 11,因此范围是 11 到 109。您必须将 99 更改为 89