import java.lang.Math;
public class Homework2 {
public static void main(String[] args){
int d1 = (int) (Math.random()*(10-3+1)+3);
int d2 = (int) (Math.random()*(10-3+1)+3);
double[][] doubMatrix1 = new double[d1][d2];
double[][] doubMatrix2 = new double[d1][d2];
double[][] doubMatrix3 = new double[d1][d2];
doubMatrix1 = getdoubMatrix(d1,d2);
doubMatrix2 = getdoubMatrix(d1,d2);
doubMatrix3 = addMatrices(doubMatrix1, doubMatrix2);
}
public static double[][] getdoubMatrix(int d1, int d2){
double[][] tempArray = new double[d1][d2];
for(int i =0; i <tempArray.length;i++ )
for(int j =0;j < tempArray[i].length;j++)
tempArray[i][j] = Math.random()*(10.0);
return tempArray;
}
public static double[][] addMatrices(double doubMatrix1[][], double doubMatrix2[][]){
for(int i = 0; i< doubMatrix1.length;i++)
for(int j = 0; j< doubMatrix1[i].length;j++ )
{
if(doubMatrix1[i][j] == doubMatrix2[i][j])
{
double[][] tempArray = new double[i][j];
}
else
{
return tempArray[0][0];
}
}
return tempArray;
}
}
我在addMatrices方法的两个return语句中都出错了我也不认为我做得对
这就是我应该为addMatrices方法做的事情
在addMatrices方法中,
·检查每个2-dim的第一个尺寸和第二个尺寸。数组数组是相同的 - 如果它们不相同,则返回0 X 0 2-dim。数组,否则执行以下操作;
·为本地2-dim分配内存。阵列具有与2-dim之一相同的尺寸。数组参数
·在参数2-dim中添加每个相应的元素。数组并将结果存储在本地2-dim的相应元素中。数组(使用嵌套for循环)
·返回本地2-dim。数组
答案 0 :(得分:3)
public static double[][] addMatrices(double doubMatrix1[][],
double doubMatrix2[][]){
for(int i = 0; i< doubMatrix1.length;i++)
for(int j = 0; j< doubMatrix1[i].length;j++ )
{
if(doubMatrix1[i][j] == doubMatrix2[i][j])
{
double[][] tempArray = new double[i][j];
}
else
{
return tempArray[0][0];
}
}
return tempArray;
}
第一个问题是,在你的其他部分你会返回一个double值。 ArrayElement,而返回类型定义为array of array
。
其次,您已在tempArray
内声明了if
,并在外面使用它,同时返回..它在if
之外无法显示。在if和for循环之外的方法中声明它。
需要进行初步修改: -
将您在其他地方的归档陈述更改为: -
tempArray = new double[0][0];
并在你的for循环之外宣布你的tempArray
。
嗯,除了上述问题还有很多。您的addMatrix
逻辑上没有添加您的矩阵。我想你应该查看那段代码..