2017-02-22 6 views
2

Я пытаюсь создать генератор случайных чисел от 1 до 1000 в 100 раз, чтобы получить следующие результаты как в консольном приложении, так и в всплывающем окне Windows Message Box (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

Вы спрашиваете 100 номеров от 1-> 1.000. Таким образом, у вас может быть 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

Вы хотели написать 'generatedNumbers.Max()' для четвертого параметра 'string.Format (...)', не так ли? – Streamline

+0

Да, я сделал :) Спасибо, пост отредактирован. – Nino

+0

Это помогло. Спасибо :) – user7605572

Смежные вопросы