Как принять возвращаемый 2d-массив

#java #arrays

#java #массивы

Вопрос:

В приведенном ниже коде я проверяю, равны ли введенные строки и столбцы, а затем принимаю массив и продолжаю вычислять сумму диагональных элементов. Я понимаю, что могу использовать только одну переменную для строк и столбцов, но это то, что говорит наше назначение.

 import java.util.*;

class main
{
int[][] acceptarray(int a[][])   //Accepting the 2d array
{
    Scanner xd = new Scanner(System.in);
    System.out.println ("Enter the elements of array : ");

    for( int i =0; i <a.length; i  )
    {
        for(int j=0; j<a[0].length; j  )
        {
        System.out.println("Enter element " (i) "," (j));
        a[i][j] = xd.nextInt();
        }
    }
    xd.close();
    return(a);
}

boolean check(int b[][])  //checking whether rows and colums are equal or not
{
    if(b.length==b[0].length)
    {return(true);}

    else
    return(false);

}

int sum(int c[][])  // Sum of the the diagonal of the matrix
{   int sum=0;
    for(int i=0;i<=c.length;i  )
    {
        for(int j=0;j<=c[0].length;j  )
        {
            if(i==j)
            {
            
            sum =sum c[i][j];
            }
        }
    }
    return(sum);
}}

class dsum
{
public static void main(String Args[])
{
    
    Scanner xd = new Scanner(System.in);
    System.out.println("Enter number of Rows");
    int m = xd.nextInt();
    System.out.println("Enter number of Columns");
    int n = xd.nextInt();
    xd.close();
    int a[][] = new int [m][n];

    main s = new main();
    boolean p = s.check(a);
    
    if(p)
    {   
        System.out.print("It is a Square Matrix:nn");
        s.acceptarray(a);
        int b[][] =s.acceptarray();    //line with the error message
        s.sum(b);
        
    }
    else
    {
        System.out.println("It's not a square matrix");
        System.exit(0);
    }   

}
}

  

Сообщение об ошибке:

                 b =s.acceptarray();
                    ^
  required: int[][]
  found: no argument
  reason: actual and formal argument lists differ in length
  

Для справки, я новичок, поэтому я не в курсе всех концепций.
Итак, может кто-нибудь, пожалуйста, помочь мне в том, как принять этот 2d-массив, который возвращается функцией acceptarray. Это поможет мне понять единственную концепцию, которую я не могу понять с недели.

Мир.

Комментарии:

1. Вам не нужно b . Просто вызовите s.sum(a);

2. вы не передаете никакой переменной в acceptarray метод. вы должны передавать аргументы в соответствии с сигнатурой метода.

Ответ №1:

Вы никогда не объявляли метод acceptarray , который не принимает аргумент. Попробуйте int b[][] =s.acceptarray(a);