[英]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.