2013-05-01 5 views
1

моя домашняя работа для моего класса кодирования java просит меня найти среднее значение оборванного двухмерного массива двойного 2d-массива и целочисленного 2d-массива. Я считаю, что мой код правильный, но вместо того, чтобы усреднять массив, он просто делит его на 2. Любая помощь будет оценена!среднее число оборванных двумерных двумерных массивов

код:

public static void main(String[] args) { 
    // adds to 22 
    double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}}; 

    //adds to 48 
    int[][] b = {{4, 6}, {9, 8, 10, 11}}; 
    int i = 0; 
    System.out.println("arrayAverage = " + arrayAverage(a)); 
    System.out.println("arrayAverage = " + arrayAverage(b)); 
} 

/** 
* computes the average for an array of a double 
*/ 
public static double arrayAverage(double a[][]) { 
    double sum = 0.0; 

    for (int i = 0; i < a.length; i++) { 
     for (int j = 0; j < a[i].length; j++) { 
      sum += a[i][j]; 

     } 

    } 

    System.out.println("Calculating Double Array"); 
    return sum/a.length; 
} 
/** 
* Computes the average for an array of integers. 
*/ 
public static int arrayAverage(int b [][]) { 
    int sum = 0; 

    for (int i = 0; i < b.length; i++) { 
     for (int j = 0; j < b[i].length; j++) { 
      sum += b[i][j]; 

     } 

    } 

    System.out.println("Calculating Integer Array"); 
    return sum/b.length; 
} 

}

run: 
Calculating Double Array 
arrayAverage = 11.0 
Calculating Integer Array 
arrayAverage = 24 
BUILD SUCCESSFUL (total time: 0 seconds) 

ответ

2

При делении на a.length, вы деля 2, потому что длина массива a. В массиве есть два элемента: a: {7.0, 6.0, 5.0} и {3.0, 1.0}.

Чтобы усреднить все числа в массиве, необходимо подсчитать все числа, суммируя длины подмассивов. Объявите переменную count, а в цикле i добавьте к ней длину подмассива a[i].length. Затем разделите на count в конце.

Будьте осторожны в своем среднем методе целочисленного деления, где десятичные числа усекаются.

+0

, что вы имеете в виду по количеству переменной? – user2313658

0

Это то, что rgettman означает

public static void main(String[] args) { 

     double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}}; 
     int[][] b = {{4, 6}, {9, 8, 10, 11}}; 
     System.out.println("arrayAverage = " + arrayAverage(a)); 
     System.out.println("arrayAverage= " + arrayAverage(b)); 

    } 


/** 
* computes the average for an array of a double 
*/ 
public static double arrayAverage(double a[][]) { 

    double sum = 0.0; 
    int count = 0; 

    for (int i = 0; i < a.length; i++) { 
     for (int j = 0; j < a[i].length; j++) { 
      sum += a[i][j]; 
      count++; 

     } 

    } 

    System.out.println("Calculating Double Array"); 

    return sum/count; 
} 





/** 
* Computes the average for an array of integers. 
*/ 
public static int arrayAverage(int b [][]) { 
    int sum = 0; 
    int count = 0; 

    for (int i = 0; i < b.length; i++) { 
     for (int j = 0; j < b[i].length; j++) { 
      sum += b[i][j]; 
      count++; 


     } 

    } 

    System.out.println("Calculating Integer Array"); 
    return sum/count; 
} 


} 

Вы должны получить правильный ответ :)

+0

СПАСИБО ЗА ВСЕХ ВАША ПОМОЩЬ! – user2313658

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