簡體   English   中英

在 C# 中計算 30 個隨機數的平均值

[英]Calculating Average Of 30 Random Numbers in c#

我正在嘗試制作一個生成 30 個隨機數的控制台應用程序,然后計算這些數字的平均值......我真的發現很難計算平均值......任何幫助/指導將不勝感激. 謝謝

using System;
using System.Linq;

class AV{
    public static void Main(){
        int[] averageGrade= new int[31];//Array to store    students
        int cntr;
        System.Random rnd=new System.Random();
        for(cntr=0;cntr<31;cntr++){
            averageGrade[cntr]=rnd.Next(0,101);
            Console.Write("Student {0}, Grade:    {1}",cntr,averageGrade[cntr]);
            Console.WriteLine(getLevel(averageGrade[cntr]));
        }
    }// End of main method

    private static string getLevel(int averageGrade) {

        double average = averageGrade.Average (t =>  t);    
        //calculate average here

    }// end of getLevel
}// end of AV class

您需要將數組傳遞給您的方法

private static string getLevel(int[] averageGrade)  

getLevel(averageGrade)

單個數字的平均值相同的數字,您使用的方法旨在處理IEnumerable ,即您的原始數組。

由於您現在正在傳入一個數組,因此您也不需要在 for 循環中調用它,因此您可以在 for 循環之后將其移到外面。

你可以嘗試這樣的事情:

    double[] array1 = { 1, 2, 3, 5, 0 };
    double average1 = array1.Average();
    Console.WriteLine(average1);

主要問題是您有:首先 - 在您的getLevel方法中接受一個數組參數,我將其重命名為GetAverage 其次 - 你應該移動Console.Write("Student {0}, Grade: {1}", cntr, averageGrades[cntr]); for循環之外。 還有一些小事:你的數組目前有 31 個元素。

using System;
using System.Linq;

class AV
{
    public static void Main()
    {
        int[] averageGrades = new int[30];//Array to store    students
        int cntr;
        System.Random rnd = new System.Random();
        for (cntr = 0; cntr < averageGrades.Length; cntr++)
        {
            averageGrades[cntr] = rnd.Next(0, 101);
            Console.Write("Student {0}, Grade:    {1}", cntr, averageGrades[cntr]);
        }

        Console.WriteLine(GetAverage(averageGrades));
    }

    private static double GetAverage(int[] averageGrade)
    {
        return averageGrade.Average(t => t);
    }
}

這樣做可以,但您的任務的想法可能是自己完成而不是使用現有的庫...

    public double GetAverage()
    {
        var rnd = new Random();
        return Enumerable.Range(0, 30) // Create an array of 30 items
            .Select(s => rnd.Next(0, 101)) // Select a random number for each item
            .Average(); // Get the average 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM