2015-08-30 33 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; 
}