Eclipse - Basic Array - PullRequest
       16

Eclipse - Basic Array

1 голос
/ 09 марта 2019

ИНСТРУКЦИЯ ПО: Создайте обычный класс, который один статический метод, который может обработать одномерный массив: • метод, который принимает одномерный массив и возвращает среднее значение элементов.

package com.array; //THIS IS A REGULAR CLASS

public class oneDimensional
{
int[] x = {1,2,3,4,5};

static void printElements(int[] x)
{
    for(int i = 0; i < x.length; i++)
    {
        System.out.print(x + " ");
    }
}

int getSum(int[] x)
{
    int sum = 0;
    for(int elements : x)
    {
        sum = (sum + elements)/x.length;
    }
    return sum;
}}



package com.array; //MAIN METHOD
import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        int[] Elements = {1,2,3,4,5};
        oneDimensional onedime = new oneDimensional();  
        System.out.println(Arrays.toString(Elements));
        int sum = onedime.getSum(Elements);
    System.out.println();
    System.out.println("Sum: " + sum);
}

}

Я не знаю, почему вывод (Среднее) равен 1. Это должно быть 3, а не 1.

1 Ответ

2 голосов
/ 09 марта 2019

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

Вообще говоря, среднее значение для ряда int s не обязательно должно быть int сама.Вы должны использовать double s вместо:

double getAvergage(int[] x) {
    double sum = 0;
    for (int element : x) {
        sum += element;
    }
    return sum / x.length;
}
...