How to manipulate arrays. Find the average. Beginn

2019-01-11 14:59发布

I have a homework assignment and I was wondering if anyone could help me as I am new to Java and programming and am stuck on a question. The question is:

The first method finds the average of the elements of an integer array:

public double average(int[] data)

That is, given an integer array, data, calculate the average of its elements are return the average value. For example, the average of {1, 3, 2, 5, 8} is 3.8.

Here is what I have done so far:

public double average(int[] data) {  
    int sum = 0;

    while(int i=0; i < data.length; i++) 

    sum = sum + data[i]; 
    double average = sum / data.length;; 

    System.out.println("Average value of array element is " " + average);
}

When compiling it I get an error message at the int i=0 part saying '.class expected'. Any help would be appreciated.

8条回答
倾城 Initia
2楼-- · 2019-01-11 15:23

Best way to find the average of some numbers is trying Classes ......

public static void main(String[] args) {
    average(1,2,5,4);

}

public static void average(int...numbers){
    int total = 0;
    for(int x: numbers){
        total+=x;
    }
    System.out.println("Average is: "+(double)total/numbers.length);

}
查看更多
乱世女痞
3楼-- · 2019-01-11 15:25

The Java 8 streaming api offers an elegant alternative:

public static void main(String[] args) {
    double avg = Arrays.stream(new int[]{1,3,2,5,8}).average().getAsDouble();

    System.out.println("avg: " + avg);
}
查看更多
太酷不给撩
4楼-- · 2019-01-11 15:30

If we want to add numbers of an Array and find the average of them follow this easy way! .....

public class Array {

    public static void main(String[] args) {

        int[]array = {1,3,5,7,9,6,3};
        int i=0;
        int sum=0;
        double average=0;
        for( i=0;i<array.length;i++){
            System.out.println(array[i]);
            sum=sum+array[i];
        }
        System.out.println("sum is:"+sum);
        System.out.println("average is: "+(double)sum/vargu.length);



    }

}
查看更多
放荡不羁爱自由
5楼-- · 2019-01-11 15:33

Well, to calculate the average of an array, you can consider using for loop instead of while loop.

So as per your question let me assume an array as arrNumbers ( here i'm considering the same array elements as in your question )

int arrNumbers[] = new int[]{1, 3, 2, 5, 8};
int sum = 0;

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

double average = sum / arrNumbers.length;

System.out.println("Average is: " + average);

You can use scanner class as well. It's left to you.

查看更多
仙女界的扛把子
6楼-- · 2019-01-11 15:41
-while(int i=0; i < data.length; i++) 
+for(int i=0; i < data.length; i++) 
查看更多
爱情/是我丢掉的垃圾
7楼-- · 2019-01-11 15:41

Try this way

public void average(int[] data) {  
    int sum = 0;
    double average;

    for(int i=0; i < data.length; i++){
        sum = sum + data[i];
    }
    average = (double)sum/data.length;
    System.out.println("Average value of array element is " + average);    
}

if you need to return average value you need to use double key word Instead of the void key word and need to return value return average.

public double average(int[] data) {  
    int sum = 0;
    double average;

    for(int i=0; i < data.length; i++){
        sum = sum + data[i];
    }
    average = (double)sum/data.length;
    return average;    
}
查看更多
登录 后发表回答