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

时间:2018-10-14 19:24:09

标签: c

因为我是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(含)之间随机生成的数字

1 个答案:

答案 0 :(得分:2)

collections.Counter

调用from collections import Counter lst = [4,6,[1,2],10,[-1,-3]] new_lst = [] for i in lst: if isinstance(i, list): new_lst.extend(i) else: new_lst.append(i) c = Counter(new_lst) print(c) # Counter({4: 1, 6: 1, 1: 1, 2: 1, 10: 1, -1: 1, -3: 1}) print(sum(c.values())) # 7 会生成一个int randomInt(int maximum,int minimum) { return(rand() % maximum + minimum); } randomInt(10,5))范围内的随机整数,然后向其添加0 -> 9,从而得到最少的rand() % maximum最多5

要生成514之间的随机值,首先要生成min范围内的随机值,然后向其添加max 。这将使最小输出0 -> (max-min)和最大输出min正是您想要的。

这是正确的代码:

0 + min = min