2015-10-17 3 views
1

Я новичок в кодировании, поэтому будьте легко на меня. Я пытаюсь определить максимальный и средний размер предоставляемого пользователем массива, используя два отдельных класса (например, xyz и отдельный класс xyztester). У меня есть моя кодировка, но максимальный результат равен 0.0, а средний вывод на один меньше длины массива. Вот мое кодирование -Определение максимального и среднего размера предоставляемого пользователем массива в Java

"хуг" класс

public static double maximum(double[] array){ 
    double max = array[0]; 
    for (int j = 1; j < array.length; j++){ 
     if(array[j] > max){ 
      max = array[j]; 
     } 
    } 
    return max; 
} 

public static double mean(double[] array){ 
    double sum = 0; 
    for (double k = 0; k < array.length; k++) 
     sum = sum + array.length; 

    double avg = sum/array.length; 

    return avg; 
} 

"xyzTester" класс

double [] b; 
    b = new double [quantArray]; 

    int j; 
    for (j = 0; j > quantArray; j++){ 
     b[j] = in.nextDouble(); 
    } 
    double n = xyz.maximum(b); 

    double [] c; 
    c = new double [quantArray]; 

    int k; 
    for (k = 0; k > quantArray; k++){ 
     c[k] = in.nextDouble(); 
    } 
    double o = xyz.mean(c); 

Может кто-то деталь, что я делаю не так?

+0

Я предлагаю вам добавить тег, который указывает используемый язык. –

+0

См. Http://stackoverflow.com/questions/33187119/find-average-maximum-and-minimum-values-of-values-entered - Похоже, что вы работаете над подобной проблемой. –

+0

Благодарим вас обоих. Я забыл добавить этот язык. Я обновил название и теги. – new2coding

ответ

1

Я вижу две проблемы: В среднем методе

sum = sum + array.length; 

Если вероятно

sum = sum + array[k]; 

Во-вторых все вычисления с плавающей точкой должны быть между точечными operants плавающими. Так лучше, чтобы материал отливки, например массив, удваивался до деления:

double avg = sum/(double)array.length; 
+0

Спасибо. Когда я делаю предлагаемое изменение, я получаю «несовместимые типы: возможное преобразование с потерями из double в int». Кроме того, я использую double not float. Должен ли я меняться на float или это имеет значение? – new2coding

+0

double и float являются плавающей точкой с различной точностью. См. Отредактированный ответ. –

+0

Еще раз спасибо. Я сделал изменение, и средняя мощность теперь такая же, как длина массива .... »run: Сколько номеров вы хотели бы ввести? 5 введите: 512: Самый большой номер 0.0 Среднее из этих 5 чисел - 5,0 BUILD SUCCESSFUL (общее время: 4 секунды) " – new2coding

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