关于数组的问题

yakjuly 2008-03-16 06:18:17
本人初学JAVA 今天遇到一个题 不知道如何解决请大家帮忙。
题目是 完成矩阵的乘法
同学做的都是一个方法解决 或者 定义的静态数组 都初始化好的数据。
我的想法是把矩阵做成一个类
用方法实现乘法

代码如下

import java.util.Scanner;
class Matrix {
int row;
int col;
Scanner scanner;
int matrix[][]=new int[row][col];//定义矩阵

Matrix(int x,int y ){
scanner=new Scanner(System.in);
row=x;
col=y;
}

void input(){ //用来输入值
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
matrix[i][j]=scanner.nextInt();
}

public static int[][] multiply(Matrix a,Matrix b){
if(a.matrix[0].length!=b.matrix.length){
System.out.println("输入的矩阵无法相乘");
System.exit(-1);
}
int multiplyMatrix[][]=new int[a.matrix.length][b.matrix[0].length];
for(int i=0;i<a.matrix.length;i++)
for(int j=0;j<b.matrix[0].length;j++)
for(int k=0;k<a.matrix[0].length;k++){
multiplyMatrix[i][j]=multiplyMatrix[i][j]+a.matrix[i][k]*b.matrix[k][j];
}
return multiplyMatrix;
}

public static void display(int[][] multiplyMatrix){
for(int i=0;i<multiplyMatrix.length;i++)
{
for(int j=0;j<multiplyMatrix[0].length;j++)
{
System.out.print(multiplyMatrix[i][j]+" ");
}
System.out.println("");
}
}
public static void main (String[] args){
int x;
int y;
Scanner sc = new Scanner(System.in);
System.out.println("输入数组1的行:");
x=sc.nextInt();
System.out.println("输入数组1的列:");
y=sc.nextInt();
Matrix fir=new Matrix(x,y);
System.out.println("输入数组2的行:");
x=sc.nextInt();
System.out.println("输入数组2的列:");
y=sc.nextInt();
Matrix sec=new Matrix(x,y);
fir.input();
sec.input();
display(multiply(fir,sec));
sc.close();
}
}

我知道上面是错的 在类变量matrix[][]的初始化时已经是赋为空。如何才能改变他的维数,使后面的引用都正确
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aipb2008 2008-03-17
  • 打赏
  • 举报
回复
多给我点分嘛!

贴大段代码时还是用下[code]吧,这样看着眼花啊!
bootupnow 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zapdos 的回复:]
我喜欢一边问一边解,可能会有其它收入
[/Quote]
好办法,学习了!
bootupnow 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zapdos 的回复:]
我喜欢一边问一边解,可能会有其它收入
[/Quote]
好办法,学习了!
zapdos 2008-03-17
  • 打赏
  • 举报
回复
我喜欢一边问一边解,可能会有其它收入
nihuajie05 2008-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java2000_net 的回复:]
最喜欢自己解决问题的人! 支持一个!
[/Quote]
发点分是个好事
andyfor 2008-03-16
  • 打赏
  • 举报
回复
自觉能力很重要 支待下楼主
bootupnow 2008-03-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bloodrate 的回复:]
有些问题自己能解决,但是问别人速度更快,我喜欢选择高效的方式


[/Quote]
很实在,呵呵
nicholasmars 2008-03-16
  • 打赏
  • 举报
回复
支持楼上的
awusoft 2008-03-16
  • 打赏
  • 举报
回复
我接个分。
bloodrate 2008-03-16
  • 打赏
  • 举报
回复
有些问题自己能解决,但是问别人速度更快,我喜欢选择高效的方式

老紫竹 2008-03-16
  • 打赏
  • 举报
回复
最喜欢自己解决问题的人! 支持一个!
网络咖啡 2008-03-16
  • 打赏
  • 举报
回复
....
yakjuly 2008-03-16
  • 打赏
  • 举报
回复
自己已经解决了 犯了个小错误

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧