C 如何生成不从0(50-100)等开始的随机数?

C 如何生成不从0(50-100)等开始的随机数?,c,random,numbers,C,Random,Numbers,请告诉我他们有没有办法用c语言生成随机数程序,生成“50到100”的随机数而不是0到100??? 不使用if-else条件???是,因为您总是可以用替换if(foo){…},而(foo){…break;}从0-50生成它并求和50 number = ( rand() % 51 ) + 50; “%”运算符返回整数除法的余数。因此,如果您说的是数字%5,则该值可能在0和4之间(包括在内)。 所以rand()%51返回一个从0到50的数字,再加上50,你就会得到你想要的。 定义宏: #define

请告诉我他们有没有办法用c语言生成随机数程序,生成“50到100”的随机数而不是0到100???
不使用if-else条件???

是,因为您总是可以用
替换
if(foo){…}
,而(foo){…break;}
0-50
生成它并求和50

number = ( rand() % 51 ) + 50;

“%”运算符返回整数除法的余数。因此,如果您说的是数字%5,则该值可能在0和4之间(包括在内)。
所以rand()%51返回一个从0到50的数字,再加上50,你就会得到你想要的。
定义宏:

#define RandomNumberInInterval(min,max) rand()%(max-min+1)+min

0
50
生成一个随机数,然后添加
50
?谢谢先生!!如果我想生成65到90之间的随机数,那么我应该怎么做呢???@Maqbool Ur Rahim Khan:这是个玩笑吗?你有m.buettner的解决方案,你不能自己做一个简单的数学吗(90-65=25,所以你需要生成0到25之间的随机数并加65)?雅普对不起,但是@a1ex07你的ans帮了我很多忙???@BrianRoach你是对的,我应该先学数学:(非常感谢您的回答!!有几个重要的注意事项:1.如果
max-min>RAND_max
2,这将产生虚假的结果。使用模运算会导致非均匀分布,随着
max-min
的增加,这种分布会恶化……您还应该检查程序员是否有良好的判断力。@RamyAlZuhouri:良好的判断力:没有这样的f文件或目录:-)