【问题标题】:How do I receive the average of the sum from my dice rolls?我如何从我的掷骰子中获得总和的平均值?
【发布时间】:2022-07-07 23:38:22
【问题描述】:

我有一个关于列表和方法的任务,我需要从我的掷骰子中获得平均值,但我遇到了错误,无法弄清楚如何以另一种方式做到这一点。我只能为此使用静态,而不是私有或其他任何东西: 方法

    class Program
    {
        // detta är en statisk metod med en int som ett returvärde
        // metoden tar en parameter i form av ett random objekt av
        // randomklassen
        static int RullaTärning(Random slumpObjekt)
        {
            // här ska du skapa kod som slumpar fram ett tal
            // mellan 1 och 6, så att metoden "rullar" en 6 sidig
            // tärning när vi kallar på den

            // metoden ska sedan returnera det rullade värdet
            int Nr = slumpObjekt.Next(1,7);
            return Nr;
        }

案例2的问题:

  ```
            switch (val)
            {
                case 1:
                    Console.Write("\n\tHur många tärningar vill du rulla: ");
                    bool inmatning = int.TryParse(Console.ReadLine(), out int antal);

                    if (inmatning)
                    {
                        for (int i = 0; i < antal; i++)
                        {
                            // här kallar vi på metoden RullaTärning
                            // och sparar det returnerade värdet i 
                            // listan tärningar
                            tärningar.Add(RullaTärning(slump));
                            
                        }
                    }
                    break;
                case 2:
                    int sum = 0;
                    // Skapar en int som ska innehålla medelvärdet av alla tärningsrullningar.
                    if (tärningar.Count <= 0)
                    {
                        Console.WriteLine("\n\tDet finns inga sparade tärningsrull! ");
                    }
                    else
                    {
                        Console.WriteLine("\n\tRullade tärningar: ");
                        foreach (int tärning in tärningar)
                        {
                            Console.WriteLine("\t" + tärning);
                        }
                        sum = tärningar / antal; //Doesn't work, CS0019, CS0165
                        Console.WriteLine("\n\tMedelvärdet på alla tärningsrull: " + sum); // Här ska medelvärdet skrivas ut (AVERAGE HERE)
                    }

                    break;
Do I need to add anything in the method or is that just for case 1?

【问题讨论】:

    标签: c# arrays list average


    【解决方案1】:

    您不能将整个列表 (List&lt;int&gt;) 除以某个值:

    // Compile Time error
    sum = tärningar / antal
    

    要找出平均值手动(在现实生活中我们输入var avg = tärningar.Average();),您应该将项目相加 并划分sum(不是列表!)但Count

    // even if items of list 
    double sum = 0.0;
    
    foreach (var item in tärningar)
      sum += item;
    
    double average = sum / tärningar.Count; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多