使用rand函数时出错

时间:2016-03-20 15:45:26

标签: c random

我尝试使用min = 4和max = 10的rand()函数:

s = rand() % 10 + 4;

并且一些结果高于10.这怎么可能?

2 个答案:

答案 0 :(得分:3)

您寻找的解决方案是rand() % 7 + 4,它会为您提供范围[4,10]的结果。更一般的是,对于给定minmax从[min,max]获取随机值,您需要rand() % (max - min + 1) + min

答案 1 :(得分:0)

如果您需要4 <= s <= 10

4, 5, 6, 7, 8, 9, 10就是您所需要的。

这是因为rand() % 7是7个数字。 bool palindrome(char a[],int length){ int start = *a; if (*a != a[length-1]) return false; if (*a == a[length-1]||start<length) return true; else return palindrome(a+1,length-1); return false; } 为您提供0到6之间的数字。向其中添加4,您将获得所需的随机数。