2017-11-30 12 views
0

これは私のコードです。コードは正常に動作しますが、適切な平均を取得できません。誰かがそれを修正してもらえますか?Javaの平均メソッドがつまった

import java.util.Scanner; 
public class test { 
    public static double Avg(int amt, int num) { 
    int tot = 0; 
    tot = tot + num; 
    int average = tot/amt; 
    return average; 
public static void main(String[] args) { 
    double average_ICT_01 = 0; 
    Scanner sc = new Scanner(System.in); 
    ArrayList<Integer> ICT_01 = new ArrayList<Integer>(); 
    for (int i=0; i<3; i++) { 
     int num = sc.nextInt(); 
     ICT_01.add(num); 
    } 
    int length01 = ICT_01.size(); 
    for (int c=0; c<3; c++) { 
     int num1 = ICT_01.get(c); 
     average_ICT_01 = Avg(length01,num1); 
    } 

    System.out.println(average_ICT_01); 
}  
} 
+1

...あなたのアルゴリズムは何です..私はint型TOT = 0のように感じます。 (あなたのアルゴリズムをメソッド化していないので、最初の一見では、あなたのメソッドの外になければならない、私は間違っているかもしれない) – RamPrakash

+0

[2つの整数をjavaでdoubleに分割する]の可能な複製を作成する(https:// stackoverflow .com/questions/19090526/divending-two-integers-to-a-double-in-java) –

答えて

0

n個の数値の算術平均は、その合計をnで割ったものです。だから、ベクトル内のすべての数値の平均値の算出方法は、次のようになります。 入力と何プットアウトが期待されている何

public static double avg(List<int> vec){ 

    //Sum all numbers 
    long sum = 0; 


    for(int i=0;i<vec.size();i++){ 
     sum = sum + vec.get(i); 
    } 

    //Divide by the number of numbers 
    double avg = sum/vec.size(); 

    //Return the average 
    return avg;  
} 
関連する問題