Как мне записать минимум и максимум для 1000 случайных чисел? - PullRequest
0 голосов
/ 26 марта 2019

Проблема требует 1000 итераций кода. Он должен учитывать целые числа от 0 до 100000 и показывать, сколько нечетных чисел было сгенерировано во время итераций, а затем отображать наибольшее число и наименьшее число сгенерированных.Первая часть моего кода работает и показывает, сколько нечетных чисел было сгенерировано, однако я не могу понять, как захватить / отредактировать самые маленькие и самые большие числа, которые были сгенерированы во время выполнения кода.

Я пробовал много разных методов, включая циклы while и условия if, else if.Я разместил их в своей программе, но я застрял.Я знаю, что проблема в том, что randNum входит в переменные и остается там через каждую итерацию, не возвращаясь к нулю. (Когда я запускаю свой код, он показывает ноль для smallNum и LargeNum.)

вот моя работапока что

using System;
using System.Windows.Forms;

namespace BissonnetteMessageBox

{
  class Program
    {
      static void Main(string[] args)

      {

        int oddNumCount = 0;
        int smallNum = 0;
        int largeNum = 0;
            Random randNum = new Random();


            for (int i = 0; i < 1000; i++)
            {

                int num = randNum.Next(100000);
                int remain = num % 2;

                if (remain != 0)
                {
                    oddNumCount++;


                }
                if (num < smallNum)
                {
                    num = smallNum;
                }
                else if (num > largeNum)
                {
                    num = largeNum;
                }

            }

            MessageBox.Show("the Number of odd numbers generated: " + oddNumCount +
                "\nSmallest number was: " + smallNum +
                "\nLargerst number was: "+ largeNum , "random number generation results");
        }
    }
}

Вот каков результат при запуске моей программы:

enter image description here

Ответы [ 2 ]

2 голосов
/ 26 марта 2019

Строки "num = smallNum;" и "num = largeNum;" не правы. Они должны быть "smallNum = num;" и "largeNum = num;". Это потому, что переменная (или константа, выражение) в правой части «=» перезаписывает переменную в левой части. Это не так, как в математике, где это можно перевернуть. Вот правильный код:

using System;
using System.Windows.Forms;

namespace BissonnetteMessageBox

{
internal class Program
{
    private static void Main(string[] args)

    {

        int oddNumCount = 0;
        int smallNum = 0;
        int largeNum = 0;
        Random randNum = new Random();


        for (int i = 0; i < 1000; i++)
        {

            int num = randNum.Next(100000);
            int remain = num % 2;

            if (remain != 0)
            {
                oddNumCount++;
            }
            if (num < smallNum)
            {
                smallNum = num;
            }
            else if (num > largeNum)
            {
                largeNum = num;
            }

        }

        MessageBox.Show("the Number of odd numbers generated: " + oddNumCount +
            "\nSmallest number was: " + smallNum +
            "\nLargerst number was: " + largeNum, "random number generation results");
    }
}
}
1 голос
/ 27 марта 2019

Несколько человек указали на две основные проблемы, связанные с самим кодом.

Я хотел бы поговорить о том, как подходить к таким проблемам, как вы будете учиться программировать.

Похоже, вы находитесь в Visual Studio, программируете на C #.Что ж, хорошая новость заключается в том, что Visual Studio действительно очень легко видеть, что происходит, когда вы проходите через свою программу.Вы можете установить точку останова в своем коде, чтобы, когда программа достигла этой строки, она остановилась - выделив строку и позволив вам увидеть, что происходит.Оттуда вы можете переходить по строкам кода, наблюдая за изменением значений.

Вот несколько полезных мест для начала:

Это будетбыть невероятно ценным в будущем.Потому что, если честно, вам не очень понравится программирование, если вам придется публиковать вопросы в Интернете всякий раз, когда вы сталкиваетесь с каким-либо препятствием.Возможность выяснить препятствия сделает вашу жизнь далеко более приятной: -)

...