ppengy
ppengy

Reputation: 1

Java: Invalid Method Declaration

Im trying to call the method getCollumAverages to test it out but i cant seem to get it to work due to the errors in the picture below. This method is outside main()

    /*
        3. Convert number 1 to a method called getColumAverages that takes in a two dimensional
           array of integers as parameter and returns a one dimensional array of numbers
           Test this method with the array you created in number 2.
    */ 
  int [] [] grades = {{100, 99, 98}, {97, 96, 95}, {94, 93, 92}, {91, 90, 90}};
  public int[] getCollumAverages(int [] [] Array)
  {
    int sum = 0;
    int [] colAvg = new int [Array[0].length];
    for(int col = 0; col < Array[col].length; col++)
    {
      for(int row = 0; row < Array.length; row++)
      {
       sum += Array[row][col];
      }
      colAvg[col] = sum / Array.length;
      sum = 0;
    }
    return colAvg;
  }
  
getCollumAverages(grades); //error on this line

Image of error

Upvotes: 0

Views: 113

Answers (2)

Med Elgarnaoui
Med Elgarnaoui

Reputation: 1667

Just call the function in another one:

Solution :

    int [] [] grades = {{100, 99, 98}, {97, 96, 95}, {94, 93, 92}, {91, 90, 90}};
    public void main() {
        getCollumAverages(grades); //no error on this line
    }
        
    public int[] getCollumAverages(int [] [] Array){
        int sum = 0;
        int [] colAvg = new int [Array[0].length];
        for(int col = 0; col < Array[col].length; col++)
        {
          for(int row = 0; row < Array.length; row++)
          {
           sum += Array[row][col];
          }
          colAvg[col] = sum / Array.length;
          sum = 0;
        }
        return colAvg;
    }

Upvotes: 1

Lili
Lili

Reputation: 11

You have to call the getCollumAverages() method in the main method. You are calling the method outside of a method and therefore java thinks that your method call is you trying to define a method. Next thing is once you put the method call in main(), you will get another error that you can't call a non-static method from within a static method (main). Therefore you will need to make the method getCollumAverages() static.

Upvotes: 1

Related Questions