Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用c语言计算30个随机数的平均值#_C# - Fatal编程技术网

C# 用c语言计算30个随机数的平均值#

C# 用c语言计算30个随机数的平均值#,c#,C#,我正在尝试制作一个控制台应用程序,生成30个随机数,然后计算这些数的平均值。。。。我真的发现很难计算平均数。。。。如有任何帮助/指导,将不胜感激。谢谢 using System; using System.Linq; class AV{ public static void Main(){ int[] averageGrade= new int[31];//Array to store students int cntr; Syst

我正在尝试制作一个控制台应用程序,生成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
使用系统;
使用System.Linq;
AV级{
公共静态void Main(){
int[]averageGrade=new int[31];//存储学生的数组
int-cntr;
System.Random rnd=新的System.Random();
对于(cntr=0;cntr t);
//在此计算平均值
}//getLevel结束
}//AV课程结束

您可以尝试以下方法:

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

您需要将数组传递给您的方法

private static string getLevel(int[] averageGrade)  

getLevel(averageGrade)
单个数字的平均值就是同一个数字,您使用的方法设计用于处理
IEnumerable
,即原始数组


由于您现在正在传入一个数组,因此也不需要从for循环中调用它,这样您就可以在for循环之后将它移到外部。

主要问题是:首先-在
getLevel
方法中接受一个数组参数,我将该方法重命名为
GetAverage
。第二,你应该移动
Console.Write(“学生{0},成绩:{1}”,cntr,平均成绩[cntr])在循环的
之外。还有一些小东西:你的数组目前有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);
    }
}
使用系统;
使用System.Linq;
AV级
{
公共静态void Main()
{
int[]averageGrades=new int[30];//存储学生的数组
int-cntr;
System.Random rnd=新的System.Random();
对于(cntr=0;cntrt);
}
}

这样就可以了,但您的任务可能是自己完成,而不是使用现有的库

    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 
    }

但是你没有提到你当前的实现面临什么问题?你试着问你的教授了吗?注意:别忘了从这个方法返回一些东西,我建议返回实际平均值,而不是字符串,但是任何对你有用的东西:)