2014-08-29 87 views
1

使用rand()鍵入兩個語句在(和包括)100和149之間打印2個隨機整數。以換行符結尾。例如:100和149之間的隨機數的固定範圍

101 
133 

我試過......

cout << rand() % 100 << endl; 
cout << rand() % 149 << endl; 

...並不能得到它的工作。

我很困惑。任何幫助,將不勝感激!

+1

'(RAND()%49)+ 100'? – 2014-08-29 16:28:15

+3

'(蘭特()%50)+ 100'應該更好,考慮包括。 – HuStmpHrrr 2014-08-29 16:38:06

+0

沒關係!弄清楚了!任何人都會在困惑中解決這個問題。 COUT <<蘭特((149 - 100 + 1)+ 100) COUT <<蘭特((149 - 100 + 1)+ 100) 只需鍵入聲明兩次,沒有改變,並取得成功! 這裏的格式: N1 = 100 N2 = 149 COUT <<蘭特((N2 - N1 + 1)+ N1) COUT <<蘭特((N2 - N1 + 1)+ N1) – 2014-08-29 20:27:37

回答

5

Don't use(rand() % 50) + 100如果你想要一個統一的分配。

使用std::uniform_int_distribution<random>頭:

#include <random> 
#include <iostream> 

int main() 
{ 
    std::random_device rd; 
    std::mt19937 gen(rd()); 
    std::uniform_int_distribution<> dis(100, 149); 

    for (int n=0; n<2; ++n) 
     std::cout << dis(gen) << ' '; 
    std::cout << '\n'; 
} 

Live demo

相關問題