计算c#中30个随机数的平均值

时间:2015-11-17 07:27:01

标签: 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

4 个答案:

答案 0 :(得分:1)

您需要将数组传递给方法

private static string getLevel(int[] averageGrade)  

getLevel(averageGrade)

单个数字的平均值相同的数字,您正在使用的方法设计用于IEnumerable,即原始数组。

由于您现在正在传入数组,因此您不需要在for循环内调用它,因此您可以在for循环后将其移出。

答案 1 :(得分:0)

您可以尝试以下方式:

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

答案 2 :(得分:0)

主要问题在于:首先 - 在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);
    }
}

答案 3 :(得分:0)

这样做,但可能你的任务的想法是自己做,而不是使用现有的库......

    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 
    }