#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);