我有一种方法需要根据数组的长度进行计算。我正在使用 .length 方法进行计算,但该方法正在使用数组的最大长度(我已声明为 10)进行算术运算。这是我用来从用户那里获取数据的循环。我知道这不是对数组数据进行排序的理想方法,但这是用于家庭作业,它围绕正确使用 .Split 方法(这不是我遇到的问题)。
for (int i = 0; i < MAX; i++)
{
Console.Write("Enter a name and a score for player #{0}: ", (i + 1));
string input = Console.ReadLine();
if (input == "")
{
// If nothing is entered, it will break the loop.
break;
}
// Splits the user data into 2 arrays (integer and string).
string[] separateInput = input.Split();
name [i] = separateInput[0];
score [i] = int.Parse(separateInput[1]);
}
这是我用来计算平均分的方法:
static void CalculateScores(int[] score)
{
int sum = 0;
int average = 0;
for (int i = 0; i < score.Length; i++)
{
sum += score[i];
average = sum / score.Length;
}
Console.WriteLine("The average score was {0}", average);
我正在调用这样的方法:
CalculateScores(score);
编辑:我的数组被声明:
int[] score = new int[MAX]; //MAX == 10.
string[] name = new string[MAX];
CalculateScores 方法在进行数学运算时,就像 score.Length 始终为 10 一样,无论我向控制台输入了多少不同的分数组合。我不知道是不是因为我收集输入的循环不正确,或者我的 CalculateScores 方法有缺陷。提前致谢。
编辑:澄清一下,我只是对为什么我不能从CalculateScores 中得到正确的值感到困惑。