chiefa laquiefa Ответов: 3

Консоль, чтобы записать средние скорости софтбола и бейсбола, а затем записать разницу. В настоящее время 2 недели в программировании , но я люблю его, просто нужен бывший


using System;
using System.Collections.Generic;
namespace imagetit
{
    public class softball
    {
        static void Main(string[] args)
        {
            Random numgen = new Random();
            int _throw = numgen.Next(80, 85);

            List<double> speeds = new List<double>() { _throw, _throw, _throw, _throw };
            speeds.Add(_throw);

            double result = 0.0;
            foreach (double speed in speeds)
            {
                result += _throw;
            }
            result = speeds.Count;

            Console.WriteLine($" The average throw is {speeds}");


        }
    }

} //2nd tab
sing System;
using System.Collections.Generic;
using System.Text;

namespace imagetit
{
    class baseball
    {
        public baseball()
        {
            Random numgen = new Random();
            int _throw = numgen.Next(90, 100);

            List<double> speeds = new List<double>() { _throw, _throw, _throw, _throw };
            speeds.Add(_throw);

            double result = 0.0;
            foreach (double speed in speeds)
            {
                result += _throw;
            }
            result = speeds.Count;

            Console.WriteLine($" The average softball throw is {speeds}");
        }
    }
}


Что я уже пробовал:

в настоящее время нет ошибок в компиляторе, 1 неделя в программировании , очень нравится!

Patrice T

"1 неделя в программировании , обожаю это!"
Хорошо, но в чем вопрос?

CHill60

В чем же вопрос?

Richard MacCutchan

Среднее значение-это сумма, деленная на количество элементов.

George Swan

Важно помнить о средних значениях, что сумма средних значений равна среднему значению суммы. Допустим, вы вычисляете среднее значение 4 чисел 1,2,3,4=10/4=2,5, а следующее число равно 5. каково среднее значение пяти чисел? Ну, 2,5 - это среднее значение 4/5 от суммы, а 5 - это среднее значение 1/5 от суммы. Таким образом, новое среднее значение (2.5*4/5)+(5*1/5)=3.суть в том, что вам не нужен список для обновления среднего значения, вам просто нужно подсчитать текущее общее количество чисел и предыдущее среднее значение. Конечно, самый простой способ-это просто держать текущую сумму и делить ее на количество чисел

3 Ответов

Рейтинг:
0

CPallini

Возможно, компилятор не жалуется, но в вашем коде есть логические ошибки.
Например, вы генерируете только одно случайное значение и заполняете список таким единственным значением.
Более того, как Ричард уже отмечалось, что среднее значение 'итого делится на количество позиций'.


Рейтинг:
0

OriginalGriff

С чего мне начать?
Давайте начнем с простых вещей:

            List<double> speeds = new List<double>() { _throw, _throw, _throw, _throw };
...
            Console.WriteLine($" The average softball throw is {speeds}");
Нет, это не так. speeds это коллекция - в частности, список предметов - и это совсем не среднее значение. Так что то, что он будет печатать, всегда одно и то же:
The average softball throw is System.Collections.Generic.List`1[System.Double]
Поскольку система не знает, как вы хотите, чтобы отображалась коллекция элементов, она использует имя типа объекта.
Чтобы вывести среднее значение, вам нужно суммировать все значения и разделить его на количество значений, которые вы сложили вместе.
av = (1 + 2 + 3 + 4 + 5) / 5 = 3

Теперь давайте немного усложним:
Random numgen = new Random();
int _throw = numgen.Next(90, 100);

List<double> speeds = new List<double>() { _throw, _throw, _throw, _throw };
speeds.Add(_throw);
Не будет добавлять разные значения в вашу коллекцию - он добавит одно и то же значение 5 раз.
Когда вы выполняете задание:
int _throw = numgen.Next(90, 100);
он присваивает текущее значение _throw, а не "запоминает, чем оно было создано". Чтобы назначить набор случайных чисел 5 раз, вам нужно фактически вызвать случайное число.Следующий метод пять раз:
Random numgen = new Random();
List<double> speeds = new List<double>();
speeds.Add(numgen.Next(90, 100));
speeds.Add(numgen.Next(90, 100));
speeds.Add(numgen.Next(90, 100));
speeds.Add(numgen.Next(90, 100));
speeds.Add(numgen.Next(90, 100));
Или используйте петлю:
Random numgen = new Random();
List<double> speeds = new List<double>();
for (int i = 0; i < 5; I++)
   {
   speeds.Add(numgen.Next(90, 100));
   }

Затем мы подходим к этому кусочку:
foreach (double speed in speeds)
{
    result += _throw;
}
result = speeds.Count;
Который просто выбрасывает результат суммирования, перезаписывая его количеством элементов count ...

Я знаю, что вы занимаетесь этим совсем недолго, но вы совершаете большую ошибку: вы прыгаете прямо в код. Не делайте этого: сначала сядьте и подумайте, спланируйте, что вы хотите сделать, а затем проверьте и уточните план, пока не убедитесь, что он сработает. Затем начните кодирование и тестирование. Переход прямо в код означает, что вы делаете это по ходу дела, и это приводит к таким ошибкам, как эти!

Сделайте копию этого кода, затем удалите его все и начните снова. Когда вы заставите его работать (а я настоятельно рекомендую вам научиться использовать отладчик, он точно покажет вам, что делает ваш код во время его выполнения), сравните новый код с этим, и вы увидите разницу!

Удачи вам!


Рейтинг:
0

Patrice T

Цитата:
В настоящее время 2 недели в программировании, но я люблю его

Мило, но ты ничего не спросил.
Просто совет: чтобы помочь вам понять, что вы кодируете правильно или неправильно, вы должны научиться использовать отладчик, это отличный инструмент обучения.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка кода C# в Visual Studio - YouTube[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.