java运行问题编译没有任何问题 我的环境变量配置也没问题 可以运行其他程序,但是,一java MatrixTet 问题

[复制链接]
查看11 | 回复1 | 2010-10-24 22:58:35 | 显示全部楼层 |阅读模式
public class Matrix
{
int rows;

int cols;

double data[][];

Matrix()

{
rows = 4;
cols = 4;
data = new double[rows][cols];
for(int i=0;i<rows;i++)
{

for(int j=0;j<cols;j++)
{

double dNum=Math.random();

data[rows][cols]=dNum*100;
}
}
}
Matrix(int rows,int cols)

{
this.rows = rows;
this.cols = cols;
System.out.println("请依次输入矩阵:");

for(int i=0;i<rows;i++){

for(int j=0;j<cols;j++){

data[j]=KeyInput.readInt();

}

}
}
Matrix(introws,int cols,double data[][])
{
this.rows = rows;
this.cols = cols;
data = new double[rows][cols];
this.data=data;
}
double getData(int row,int col)
//获取某元素值的方法
{
double i = data[row-1][col-1];
return i;
}
void setData(int row,int col,double value)
//设置某元素值的方法
{
data[row-1][col-1]=value;
}
void multiply(Matrix m)
//以及计算两个矩阵的乘积的方法
{
int i,j,k;
int temp=0;
if(rows!=m.cols)
System.out.printf("两矩阵不能相乘");
else
for(i = 0;i<rows;i++)
{

for(k = 0;k<cols;k++)

{

for(j = 0;j<cols;j++)

{

temp+=this.data[j]*m.data[j];

}

this.data[k]=temp;

}

}
}
public String toString(){

System.out.println("矩阵:");

for(int i=0;i<rows;i++){

for(int j=0;j<cols;j++){

System.out.print(data[j]+" ");

}

System.out.println();

}

return null;
}
}
//测试类
public class MatrixTest
{
public static void main(String[] args)
{
Matrix m1 = new Matrix();
Matrix m2 = new Matrix(4,4);
m1.toString();
m2.toString();
System.out.println("m1和m2相乘后为:");
m1.multiply(m2);
m1.toString();
}
}

回复

使用道具 举报

千问 | 2010-10-24 22:58:35 | 显示全部楼层
数组越界异常了你把第一个for循环那里改成 for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++) {
double dNum=Math.random();
data[j]=dNum*100; }} 还有 这个data[j]=KeyInput.readInt(); 里的 KeyInput.readInt();KeyInput是 什么输入流来的 ?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行