2015-11-01 167 views
-1

我正在嘗試編寫平均數組的代碼。我不斷收到返回語句錯誤和主類缺失錯誤。請幫忙。如何計算陣列平均值

public class ArrayAverage { 
    public static double average(double[] x){ 
     // declare and intialize array to hold value 
     int[] numbers = new int[]{1, 2, 3 ,4, 5}; 

     //calculate sum of all array elements 
     int sum = 0; 

     for(int i=0; i < numbers.length ; i++) 
     sum = sum + numbers[i]; 

     //calculate average value 
     double average = sum/numbers.length; 

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

歡迎來到[SO]!您忽略了您正在使用的語言,這會阻止正確的專家向您提供幫助。我猜它是C#。記得告訴我們所有的相關細節.... –

+1

並不是每一個Java(?)教程都是從如何創建'main'開始的? – usr2564301

回答

2

在Java中,代碼入口點始終是main方法。它具有以下簽名:public static void main(String[] args)

您必須在main方法中調用average方法,以便應用程序運行。

此外,您的average方法聲明返回值類型double。但是,該方法沒有返回語句。您必須在方法return val;(val是您希望返回的任何雙精度值)的末尾寫入或者將方法返回類型聲明爲void

更何況,您的方法有一個參數xdouble[]類型。當調用你的方法時(在main方法中),你必須傳遞它這樣的參數。或者,您可以更改您的方法簽名以接受任何內容(無參數)。

現在,至於你的方法的身體。它不是以最佳實踐書寫的,但功能上它看起來不錯,除了一件事。

//計算平均值
double average = sum/numbers.length;

這將做整數除法,給你一個整數的答案。這意味着小數點後的任何值都會被截斷。爲了解決這個問題,做兩件事情之一:

  1. 聲明sumdouble
  2. 將當,鑄sumnumbers.length作爲雙

    double average = sum/(double) numbers.length;

附:我可以通過使用System.out.println來判斷這是Java。將來,請務必使用Java標記您的問題,或者您的代碼使用哪種語言。