2017-11-30 44 views
0

私は与えられた数の平均を、それを上にすべて追加してから、私に与えられた数の数で割ったものを求め、その平均は3桁の10進数を持つ必要があります45.0のそれは45.000だろうと私は動作しますが、最後の番号が02桁の3桁の数値を出力する

import java.util.Scanner; 
import static java.lang.System.*; 

public class Average 
{ 
    private String line; 
    private double average, sum, count; 

    public Average() 
    { 
    setLine(""); 
    } 

    public Average(String s) 
    { 
    setLine(s); 
    } 

public void setLine(String s) 
{ 
    line = s; 
    sum = 0.0; 
    count = 0.0; 
    average = 0.0; 
} 

public double getCount() 
{ 
    int num = 0; 
    while(num<line.length()) 
    { 
    if(line.charAt(num) == 32) 
    { 
     count ++; 
     num ++; 
    } 
    else 
     num ++; 
    } 
    count ++; 
    return count; 
} 

public double getSum() 
{ 
    Scanner bobby = new Scanner(line); 
    while(bobby.hasNextInt()) 
    sum = sum + bobby.nextInt(); 
    return sum; 
} 

public double getAverage() 
{ 
    average = getSum()/getCount(); 
    average = average*1000; 
    if(average%10>4) 
    { 
    average = Math.floor(average); 
    average ++; 
    average = average/1000.0; 
    } 
    else 
    { 
    average = Math.floor(average); 
    average = average/1000.0; 
    } 
    return average; 
    } 

public String getLine() 
{ 
    return line; 
} 

public String toString() 
{ 
    return ""; 
} 
} 

がない場合にのみ、これは

import java.util.Scanner; 
import static java.lang.System.*; 

public class AverageRunner 
{ 
    public static void main(String args[]) 
    { 
    String s = "9 10 5 20"; 
    Average bob = new Average(s); 
    System.out.println("Find the average of the following numbers :: "+s); 
    System.out.println("Average = " + " " + bob.getAverage()); 
    System.out.println(); 

    s = "11 22 33 44 55 66 77"; 
    Average bob1 = new Average(s); 
    System.out.println("Find the average of the following numbers :: "+s); 
    System.out.println("Average = " + " " + bob1.getAverage()); 
    System.out.println(); 

    s = "48 52 29 100 50 29"; 
    Average bob2 = new Average(s); 
    System.out.println("Find the average of the following numbers :: "+s); 
    System.out.println("Average = " + " " + bob2.getAverage()); 
    System.out.println(); 

    s = "0"; 
    Average bob3 = new Average(s); 
    System.out.println("Find the average of the following numbers :: "+s); 
    System.out.println("Average = " + " " + bob3.getAverage()); 
    System.out.println(); 

    s = "100 90 95 98 100 97"; 
    Average bob4 = new Average(s); 
    System.out.println("Find the average of the following numbers :: "+s); 
    System.out.println("Average = " + " " + bob4.getAverage()); 
} 
} 
+0

2つではなく3つのみ... – azurefrog

+0

質問は正確には何ですか?あなたのコードは何を行い、何をしたいのですか?何が残っていますか?あなたは自分でそれをやるのが難しいところはどこですか?あなたを混乱させるものは何ですか? – Zabuza

答えて

1

使用DecimalFormat私のランナーファイルです:

DecimalFormat df = new DecimalFormat("#.000"); 
System.out.println("Nummber: " + df.format(1.2345)); 
+0

私はbob.getAverageを言っているので、どうすればそれを書いていますか?そうすれば、私はbob.df.format.getAverageをやりますか? –

+0

bob.getAverage()をdf#に渡すだけです。format(String) – Gianlu

関連する問題