2014-02-12 42 views
0

我想生成包含隨機數從-100到100的列表,從-50到50C++的隨機數-100到100

for(int line=0;line<100;line++) //reads individual lines and compares them 
{ 
    ofs<<rand()%101 + (-50)<<endl; 
} 

到目前爲止我只是去的代碼我真的感謝它,如果有人能指出我正確的方向!

+0

我可以指出你的''頭。此外,'std :: generate'的名字意味着很好。 – chris

+1

-100到100是201個數字的範圍,所以你需要'%201 - 100'。 '%201'可以給你0和200之間的數字,所以-100從那裏給你想要的結果範圍。 –

回答

0

請注意,你想從值-100到+100,這是一個範圍內200個值的,所以你真的想:

rand() % 200 // possible off-by-one error 

這會給你0..199。爲了更接近你想要的範圍,減去99:

(rand() % 200) - 99 

這會給你範圍-99 .. + 100。這更接近你想要的。

你應該能夠現在回去調整以獲得你真正想要的範圍。

2

更改爲%201+(-100)。有一點實驗可以解決這個問題。

0

rand() %201 - 100作品恰到好處