我写了这个矩阵添加程序,我不知道为什么但是我继续在第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;
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);
}
}
答案 0 :(得分:3)
因为getMatrix会抛出IOException,它必须被main捕获或声明为抛出。
在您的情况下,最简单的解决方案是在main上声明它。
public static void main(String... args) throws IOException
答案 1 :(得分:1)
类Arr
的设计有点奇怪。您应该将它压缩到一个对象,比如一个名为arrProcessor的对象,而不是使用两个冗余对象obj1
和obj2
。所以这些电话看起来像是:
x=arrProcessor.getMatrix();
y=arrProcessor.getMatrix();
z=arrProcessor.findSum(x,y);
arrProcessor.putMatrix(z);
更好的是,你应该将数组包装在对象中,而不是使用数组,比如在一个名为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 {/*...*/}
}
所以现在代码看起来像:
Matrix x,y,z;
x=Matrix.getMatrix(3,3);
y=Matrix.getMatrix(3,3);
z=x.plus(y);
z.print();
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您厌倦了用矩阵编写自己的代码,只需下载我开发的库。它可以添加,乘法,反转,转发,计算行列式和求解线性系统。
这是开源的,你也可以下载源代码,看看它是如何工作的。