TAGS :Viewed: 14 - Published at: a few seconds ago

[ Difficulty with passing arrays and manipulating data in arrays (Homework) c# ]

So I am doing a Homework assignment for c#. The assignment requires the use of 2 arrays, one to hold names and the other to hold scores. We are then to calculate the average score, display the below average scores, and display the scores according to name. I am having a significant amount of difficulty passing the arrays by reference/value in order to use the data in them and maintain my code using separate modules. The arrays have to hold up to 100 individual pieces of data.

    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;





        }

The biggest question I have is that I cannot seem to pass the array data. I am plagued by "No overload method for "Input Data" or whatever method I am using. So I'm curious as to how I can pass the array data to another method.

Answer 1


Since this is homework, I won't give you the full answer, but here is a way forward.

Instead of using the ref keyword, just pass the array into the method. Have the method return an int instead of void. Calculate the average within the method and have the final line of the method return the int that you've calculated

static int CalculateAverageScore(int[] playerScores)
{
    // calculate average

    return average; // the int you've calculated.
}

Call the method from the main, when you need to acquire the average.

Also, are you missing some braces { } for the 6 lines that come after your else statement?