gpt4 book ai didi

c - 为什么我的 C 代码没有生成我设置范围内的随机数?

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:40 24 4
gpt4 key购买 nike

我一直在尝试使用函数来熟悉 C,因为我是 C 的新手。我试图生成一个介于 5 到 10(含)之间的随机数。它没有按预期工作。

代码源

int randomInt(int maximum,int minimum)
{
return(rand() % maximum + minimum);
}

样本输入

int main(){
srand(time(NULL));
for(int i=0;i<50;i++){
printf("NUMBER IS %d \n", randomInt(10,5));
}

}

输出(不正确)

// NUMBER IS 10 
// NUMBER IS 8
// NUMBER IS 11
// NUMBER IS 7
// NUMBER IS 6
// NUMBER IS 9
// NUMBER IS 14
// NUMBER IS 5
// NUMBER IS 7
// NUMBER IS 11
// NUMBER IS 11
// NUMBER IS 12
// NUMBER IS 12
// NUMBER IS 7
// NUMBER IS 6
// NUMBER IS 12
// NUMBER IS 5
// NUMBER IS 10
// NUMBER IS 7
// NUMBER IS 13
// NUMBER IS 14

它没有给我随机生成的 5 到 10(含)之间的数字

最佳答案

int randomInt(int maximum,int minimum)
{
return(rand() % maximum + minimum);
}

调用 randomInt(10,5) 将生成一个 0 -> 9 范围内的随机整数(rand() % maximum)然后向其添加 5,得到最小 5 和最大 14

要生成 minmax 之间的随机值,您要做的是生成 0 -> (max-min ),然后添加 min。这将使最小输出 0 + min = min 和最大输出 max - min + min = max,这正是你想要的。

所以这是正确的代码:

int randomInt(int maximum,int minimum)
{
return(rand() % (maximum - minimum + 1) + minimum);
}

关于c - 为什么我的 C 代码没有生成我设置范围内的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com