Java 矩阵加法
我写了这个矩阵加法程序,我不知道为什么,但我在第61行和第63行不断得到这两个错误,我不想处理异常,但只要抛出就可以了Java 矩阵加法,java,Java,我写了这个矩阵加法程序,我不知道为什么,但我在第61行和第63行不断得到这两个错误,我不想处理异常,但只要抛出就可以了 error: unreported exception IOException; must be caught or declared 程序代码如下: import java.io.*; class Arr { int r,c; int arr[][]; Arr(int r,int c) { this.r=r;
error: unreported exception IOException; must be caught or declared
程序代码如下:
import java.io.*;
class Arr
{
int r,c;
int arr[][];
Arr(int r,int c)
{
this.r=r;
this.c=c;
arr=new int[r][c];
}
int[][] getMatrix()throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.println("enter element");
arr[i][j]=Integer.parseInt(br.readLine());
}
}
return arr;
}
int[][] findsum(int a[][],int b[][])
{
int temp[][]=new int[r][c];
for(int i=0;i<r;i++)
for(int j=0;j<c;j++)
temp[i][j]=a[i][j]+b[i][j];
return temp;
}
void putmatrix(int res[][])
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.println(res[i][j]+"\t");
}
}
System.out.println();
}
}
class Matrixsum
{
public static void main(String args[])
{
Arr obj1=new Arr(3,3);
Arr obj2=new Arr(3,3);
int x[][],y[][],z[][];
System.out.println("\nEnter matrix 1");
x=obj1.getMatrix();
System.out.println("Enter matrix 2");
y=obj2.getMatrix();
z=obj1.findsum(x,y);
System.out.println("the sum matrix is");
obj2.putmatrix(z);
}
}
import java.io.*;
类Arr
{
int r,c;
int arr[][];
Arr(内部r,内部c)
{
这个。r=r;
这个.c=c;
arr=新整数[r][c];
}
int[]getMatrix()引发IOException
{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
对于(int i=0;i,因为getMatrix抛出IOException,它必须被捕获或声明为由main抛出
在您的情况下,最简单的解决方案是在main上声明它
public static void main(String... args) throws IOException
因为getMatrix抛出IOException,它必须被捕获或声明为由main抛出
在您的情况下,最简单的解决方案是在main上声明它
public static void main(String... args) throws IOException
声明getMatrix()以引发IOException。在main()中调用getMatrix()可以生成IOException,函数或rethrown需要捕获这些IOException。要解决此问题,可以声明main()以引发IOException
类Arr
的设计有点奇怪。与其使用两个冗余对象obj1
和obj2
,不如将其压缩为一个对象,比如一个称为arrProcessor的对象。因此调用如下所示:
x=arrProcessor.getMatrix();
y=arrProcessor.getMatrix();
z=arrProcessor.findSum(x,y);
arrProcessor.putMatrix(z);
Matrix x,y,z;
x=Matrix.getMatrix(3,3);
y=Matrix.getMatrix(3,3);
z=x.plus(y);
z.print();
更好的是,您不应该使用数组,而应该将数组包装在对象中,例如在一个名为Matrix的类中:
public class Matrix{
int[][] values;
int numRows, numCols;
protected Matrix(){/*...*/}
public static Matrix getMatrix(int nRows, int nCols){/*...*/}
public static Matrix addMatrices(Matrix a, Matrix b) throws Exception {/*...*/}
public void print(){/*...*/}
public void plus(Matrix another) throws Exception {/*...*/}
}
现在代码看起来像:
x=arrProcessor.getMatrix();
y=arrProcessor.getMatrix();
z=arrProcessor.findSum(x,y);
arrProcessor.putMatrix(z);
Matrix x,y,z;
x=Matrix.getMatrix(3,3);
y=Matrix.getMatrix(3,3);
z=x.plus(y);
z.print();
声明getMatrix()以引发IOException。在main()中调用getMatrix()可以生成IOException,函数或rethrown需要捕获这些IOException。要解决此问题,可以声明main()以引发IOException
类Arr
的设计有点奇怪。与其使用两个冗余对象obj1
和obj2
,不如将其压缩为一个对象,比如一个称为arrProcessor的对象。因此调用如下所示:
x=arrProcessor.getMatrix();
y=arrProcessor.getMatrix();
z=arrProcessor.findSum(x,y);
arrProcessor.putMatrix(z);
Matrix x,y,z;
x=Matrix.getMatrix(3,3);
y=Matrix.getMatrix(3,3);
z=x.plus(y);
z.print();
更好的是,您不应该使用数组,而应该将数组包装在对象中,例如在一个名为Matrix的类中:
public class Matrix{
int[][] values;
int numRows, numCols;
protected Matrix(){/*...*/}
public static Matrix getMatrix(int nRows, int nCols){/*...*/}
public static Matrix addMatrices(Matrix a, Matrix b) throws Exception {/*...*/}
public void print(){/*...*/}
public void plus(Matrix another) throws Exception {/*...*/}
}
现在代码看起来像:
x=arrProcessor.getMatrix();
y=arrProcessor.getMatrix();
z=arrProcessor.findSum(x,y);
arrProcessor.putMatrix(z);
Matrix x,y,z;
x=Matrix.getMatrix(3,3);
y=Matrix.getMatrix(3,3);
z=x.plus(y);
z.print();
嘿,我建议你买这个。
嘿,我建议你买这个。
如果你厌倦了用矩阵编写自己的代码,只需下载我开发的库。它可以加法、乘法、求逆、转发器、计算行列式和解线性系统
请检查:
这是一个开源软件,你也可以下载源代码,看看它是如何工作的。如果你厌倦了用矩阵编写自己的代码,只需下载我开发的库。它可以加法、乘法、求逆、换位、计算行列式和解线性系统
请检查:
这是开源的,您也可以下载源代码并查看其工作原理。@user667405:如果答案有帮助,您可以通过向上投票表示,如果它解决了您的问题,您可以接受它。无需为此留下评论。@user667405:如果答案有帮助,您可以向上投票表示,如果它解决了您的问题,您可以接受它我们的问题。没必要就此发表评论。