2015-08-30 71 views
0

我想寫一個方法,它會在檢查它是否下雨之後爲每年的每一天分配一個降雨值。需要幫助將值分配給數組C#(noob)

所以我想我的days陣列包含低於28 365件的隨機數,其中3/4是0

注:我有一個全球性的隨機變量

static void Generate() 
{ 
    int[] days = new int[365]; 

    int going_to_rain = 0; 
    for (int i = 0; i < days.Length; i++) 
    { 
     going_to_rain = randomValue.Next(3); 
     if (going_to_rain == 1) 
     { 
      days[i] = randomValue.Next(1, 28); 
     } 
     else 
     { 
      days[i] = 0; 
     } 
    } 
    Console.WriteLine(days); 
} 
+0

什麼是你的代碼錯誤?要正確打印值,只需在退出for循環之前編寫'Console.WriteLine(days [i]);'。 –

+0

你確切地想要3/4,_i.e._ 273個元素0嗎?或者你想要一個3/4的_probability_元素爲0嗎?有一個區別,現在你要去後者。 –

+0

非常有用的評論,claudiu。 – L33tmagePK

回答

0

您可以創建一個數組它的第一批274個單元是0,其他單元是隨機的。

之後你randomally洗牌此陣:

int[] days = new int[365]; 
int i = 0; 
for(i = 0;i < 274;++i) 
{ 
    days[i] = 0; 
} 

for (i = 275;i < 365; ++i) 
{ 
    days[i] = randomValue.Next(1,28); 
} 

//Shuffle 
for (i = 0; i < 365; ++i) 
{ 
    int randVal = randomValue.Next(364); 
    int tmp = day[randVal]; 
    day[randVal] = day[i]; 
    day[i] = tmp; 
}