所以我正在为c#做一个家庭作业。该任务需要使用2个数组,一个用于保存名称,另一个用于保存分数。然后我们计算平均分数,显示低于平均分数,并根据名称显示分数。我通过引用/值传递数组有很大的困难,以便使用它们中的数据并使用单独的模块维护我的代码。阵列必须容纳多达100个单独的数据。
class Program
{
static void Main(string[] args)
{
string[] playerNames = new string[100];
int[] playerScores = new int [100];
int numPlayers = 0;
double averageScore;
DisplayData(playerNames);
}
static void InputData(string[] playerNames, int[] playerScores, ref int numPlayers)
{
string playerName;
do
{
int i = 0;
Console.WriteLine("Enter the name of the player...Enter \"Q to exit...");
playerName = Console.ReadLine();
if (playerName == "Q" || playerName == "q")
Console.WriteLine("No further user input needed...\n");
else
playerNames[i] = playerName;
Console.WriteLine("Enter the score of the player...");
int playerScore = Convert.ToInt32(Console.ReadLine());
playerScores[i] = playerScore;
numPlayers += i;
i++;
}
while (playerName != "Q");
}
static void CalculateAverageScore(int[] playerScores, ref int averageScore)
{
InputData(playerScores);
InputData(ref numPlayers);
int averageScores = 0;
averageScores = playerScores / numPlayers;
}
我遇到的最大问题是我似乎无法传递数组数据。我受到#34;输入数据"的无过载方法的困扰。或者我正在使用的任何方法。所以我很好奇如何将数组数据传递给另一个方法。
答案 0 :(得分:4)
由于这是作业,我不会给你完整的答案,但这是前进的方法。
不要使用ref
关键字,只需将数组传递给方法即可。让方法返回int
而不是void
。计算方法中的平均值,并使方法的最后一行返回您计算的int
static int CalculateAverageScore(int[] playerScores)
{
// calculate average
return average; // the int you've calculated.
}
当你需要获得平均值时,从main调用方法。
另外,您是否遗漏了{ }
声明之后的6行的一些大括号else
?