2012-10-14 3 views
0
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 и я не думаю, что я делаю это правильносравнения 2d Arays, а затем добавить их

Это то, что я должен был сделать для метода addMatrices

В addMatricesmethod,

· Проверьте, если первые размеры и thesecond размеры каждой 2-тусклым. массив массива одинаковый - если они НЕ совпадают, верните 0 X 0 2-мерный. array, в противном случае выполните следующее;

· Выделить память для локального 2-мерного. массив с теми же размерами, что и один из 2-мерных. параметры массива

· Добавить каждый соответствующий элемент в параметре 2-мерный. массивов и сохранить результат в соответствующем элементе локального 2-мерного. массив (используйте вложенные для петель)

· Верните местный 2-мерный. Массив

ответ

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; 
} 
  • Ну первая проблема заключается в том, что в вашей части еще вы возвращаете двойное значение. ArrayElement, а тип возвращаемого значения - array of array.

  • Во-вторых, вы объявили свой tempArray внутри вашего if и использовать его снаружи, в то время как возвращение .. Он не будет виден за пределами if. Объявите его в своем методе, вне вашего if и for-loop.

ОСНОВНОЙ МОДИФИКАЦИЯ ТРЕБУЕТСЯ: -

  • Измените свой обратный Постулаты в вашей еще, чтобы: -

    tempArray = new double[0][0]; 
    
  • И объявите ваш tempArray вне вашей для цикла.

Ну, есть намного больше, чем выше проблема. Ваш addMatrix логически не добавляет ваши матрицы. Я думаю, вы должны проверить этот код.

Смежные вопросы