2017-02-22 52 views
2

我試圖創建一個隨機數字發生器,範圍從1到1000 100次,以在控制檯應用程序和彈出的Windows消息框(MessageBox.Show)上實現以下結果格式如下:C#隨機數字發生器,在MessageBox中顯示

  • 100件隨機數,以便從最小到最大
  • 金額偶數產生
  • 最少數量產生
  • 最大數量產生
  • 號碼的範圍

我在創建陣列存儲的值,並得到與我有什麼在這裏產生偶數量迷茫,比方說我的數組名稱將是「數組」,並將數字存儲爲「n」

string [] array = {item}; 
string output = string.Join("\n", array); 
MessageBox.Show(output) 

這是我的代碼,我該如何添加它?

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Windows.Forms; 

namespace NumberGenerator 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Random number = new Random(); 
      int min = int.MaxValue, 
      max = int.MinValue; 

      for (int counter = 0; counter < 100; counter++) 
      { 
       int n = number.Next(0, 999); 
       Console.WriteLine(n); 

       if (n < min) 
        min = n; 
       if (n > max) 
        max = n; 
      } 

      int range = min - max + 1; 

      string[] array = { "Minimum number is (min)" }; 
      string output = string.Join("\n", array); 
      Console.WriteLine("Minimum number = {0}, Maximum number = {1}, Range = {2}", min, max, range); 
      MessageBox.Show(output); 
     } 
    } 
} 
+0

您正在問1-> 1.000的100個數字。這樣,你可能有10 /%的重複。你關心這個嗎? – XristosK

+0

@ XristosK nope,那不是我所關心的 – user7605572

+0

如果你正在尋找一個真正的隨機數,你應該使用RNGCryptoServiceProvider類來生成它們而不是使用Random類 –

回答

0

這是一種方法。 代碼應該是自expanatory

static void Main(string[] args) 
{ 
    Random number = new Random(); 
    int rangeFrom = 0; 
    int rangeTo = 999; 
    List<int> generatedNumbers = new List<int>(); 

    for (int counter = 0; counter < 100; counter++) 
    { 
     generatedNumbers.Add(number.Next(rangeFrom, rangeTo)); 

    } 

    generatedNumbers.Sort(); 

    string output = "generated numbers: {0} \r\n\rmin: {1}\r\n\r\nmax: {2}\r\n\r\nrange: {3}-{4}"; 
    output = string.Format(output, 
     string.Join(", ", generatedNumbers.ToArray()), 
     generatedNumbers.Min(), 
     generatedNumbers.Max(), 
     rangeFrom, 
     rangeTo); 


    MessageBox.Show(output); 
} 

總結: 我已經使用清單數據更容易操作和使用的LINQ(確保你在你的應用程序有using System.Linq;)。

+0

你打算爲第四個'string.Format(...)'參數寫'generatedNumbers.Max()',不是嗎? – Streamline

+0

是的,我做了:)謝謝你,編輯後。 – Nino

+0

這有幫助。謝謝:) – user7605572