2014-10-08 19 views
-2

我試圖編寫一個程序,您可以輸入「x」並在每行中獲得具有6個隨機數的「x」數量的行。我現在的代碼給出了「x」數量的相同行的輸出,每行有6個隨機數。這是到目前爲止我的代碼多行,每個C中有6個隨機數#

{ 
     Random random_generator = new Random(DateTime.Now.Millisecond); 

     int random_numbers, int_games; 

     List<int> lst_numbers = new List<int>(); 

     if (!int.TryParse(txt_input.Text, out int_games)) 
     { 
      MessageBox.Show("Please enter valid number"); 
      txt_input.Clear(); 
      txt_input.Focus(); 
     } 
     else 
      while (lst_display.Items.Count < int_games) 
      { 
       while (lst_numbers.Count < 6) 
       { 
        random_numbers = random_generator.Next(1, 45); 
        if (!lst_numbers.Contains(random_numbers)) 
        { 
         lst_numbers.Add(random_numbers); 
        } 
        else 
        { 

        } 
       } 
       lst_display.Items.Add(string.Join(",", lst_numbers)); 
      } 
    } 
+0

['For'](http://msdn.microsoft.com/zh-cn/library/ch45axte.aspx)loop。 – Sinatr 2014-10-08 09:18:39

+0

@Reniuz你怎麼錯過「標識」? :)我會解決這個問題 – Leo 2014-10-08 09:18:41

+0

@Leo [Typoglycemia](http://en.wikipedia.org/wiki/Typoglycemia):) – Reniuz 2014-10-08 09:23:58

回答

0

你想執行內部循環,目前它只是執行一次,因爲你是填充在該lst_numbers第一iteration.You可以與for循環,而不是取代它每次:

while (lst_display.Items.Count < int_games) 
{ 
    for(int i=0; i<6; i++) 
    { 
     random_numbers = random_generator.Next(1, 45); 
     if (!lst_numbers.Contains(random_numbers)) 
     { 
      lst_numbers.Add(random_numbers); 
     } 
    } 
    lst_display.Items.Add(string.Join(",", lst_numbers)); 
    lst_numbers.Clear(); 
} 
+0

謝謝你的工作完美! – Rozap 2014-10-08 09:22:29

0

難道這不容易嗎?

Public String getList(int numbersPerLine,int rows,int from,int to){ 
String list =""; 
for(int i = 1;i<= numbersPerLine;i++;){ 
    for(int j = 1;j<= rows;j++;){ 
    List += ""+((int)(Math.random()*to)+from)+","; 
    } 
    list +=\n";//for starting new line... 
} 
return list; 
}