【发布时间】:2015-04-19 19:22:06
【问题描述】:
我的代码将两个矩阵相乘并输出值。接下来我想做的是将代码分成两个类。我想要一个可以接受用户输入并将数组值传递给另一个类中的构造函数然后计算相同值的类。我知道如何从第二类中获取返回类型,但不知道如何从数组中传递值进行计算。任何帮助,将不胜感激。谢谢!!
import java.util.Scanner;
class MatrixApp
{
public static void main(String args[])
{
int m, n, p, q;
int sum = 0, c, d, k;
Scanner in = new Scanner(System.in);
System.out.println("Enter the number of rows and columns of first matrix");
m = in.nextInt();
n = in.nextInt();
int first[][] = new int[m][n];
System.out.println("Enter the elements of first matrix");
for ( c = 0 ; c < m ; c++ )
for ( d = 0 ; d < n ; d++ )
first[c][d] = in.nextInt();
System.out.println("Enter the number of rows and columns of second matrix");
p = in.nextInt();
q = in.nextInt();
if ( n != p )
System.out.println("Matrices with entered orders can't be multiplied with each other.");
else
{
int second[][] = new int[p][q];
int multiply[][] = new int[m][q];
System.out.println("Enter the elements of second matrix");
for ( c = 0 ; c < p ; c++ )
for ( d = 0 ; d < q ; d++ )
second[c][d] = in.nextInt();
for ( c = 0 ; c < m ; c++ )
{
for ( d = 0 ; d < q ; d++ )
{
for ( k = 0 ; k < p ; k++ )
{
sum = sum + first[c][k]*second[k][d];
}
multiply[c][d] = sum;
sum = 0;
}
}
System.out.println("Product of entered matrices:-");
for ( c = 0 ; c < m ; c++ )
{
for ( d = 0 ; d < q ; d++ )
System.out.print(multiply[c][d]+"\t");
System.out.print("\n");
}
}
}
}
【问题讨论】:
-
您能澄清一下您的问题吗?我没有完全理解它。
-
我希望能够获取分配给数组的输入值并将它们传递给另一个类进行计算。我希望我的主要方法仅用于调用返回值而不处理计算。希望有帮助
-
“类”不返回值。您不会“从数组”传递值。请澄清,最好提供方法签名。
-
一个“类”可以有返回值的方法,我只是想弄清楚如何将值传递给构造函数。在我的代码中,用户将输入值。我想将这些值传递给另一个类中的另一个方法。我知道怎么称呼它们,但设置它们是个问题。
-
@laune 他的问题非常容易理解。我不明白你的困惑和TejjD的困惑