2010-07-11 212 views
-1
void main() 
{ 

    randomize(); 
    char city[][10]={"DEL","CHN","KOL","BOM","BNG"}; 
    int i,fly; 
    for(i=0;i<3;i++) 
    { 
    fly=random(2)+1; 
    cout<<city[fly]<<":"; 
    } 
} 

什麼是下面的代碼片段的輸出是什麼?隨機函數

+3

嗯,什麼是'randomize'和'random'?我們如何預測一個隨機數? **並且'main'返回'int'!** – GManNickG 2010-07-11 08:00:07

+0

爲什麼不嘗試編譯並運行它? – mathk 2010-07-11 08:01:05

+0

我沒有提到頭文件stdlib.h – anurag18294 2010-07-11 08:02:46

回答

3

如果您希望每次使用隨機數生成器運行程序時都輸出相同的,您希望每次都爲生成器生成相同的值。例如:

#include <cstdlib> 
#include <iostream> 
using namespace std: 

int main() { 
    srand(42); // generator always seeded with same value 
    for (int i = 0; i < 10; i++) { 
     cout << rand() << endl; 
    } 
} 

總是產生相同的序列。

+0

請告訴我我的代碼可能的輸出 – anurag18294 2010-07-11 08:14:18

0

隨機(2)0或1 因此飛=隨機(2)+ 1是1個或2 城市[飛]可以是 「CHN」 或 「KOL」 因爲循環將重複三次,可能的答案是

  • CHN:CHN:CHN
  • CHN:CHN:KOL
  • CHN:KOL:CHN
  • CHN:KOL:KOL
  • KOL:CHN:CHN
  • KOL:CHN:KOL
  • KOL:KOL:CHN
  • KOL:KOL:KOL