2015-10-05 233 views
-1

我正在爲這個代碼苦苦掙扎。我需要編寫一個程序,從標準輸入中讀取任意數量的數據點。然後它返回值的數量,最小/最大值和平均值。我沒有取得很大的進展,但這是我的全部。預先感謝您的幫助。在Java中查找num值和最小值/最大值值

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    double num,sum=0,min,max; 
    max = Integer.MAX_VALUE; 
    min = Integer.MIN_VALUE; 
    int Date=0; 
    while (input.hasNext()) { 
     num=input.nextDouble(); 
      sum+=num; 
      Date++; 
      if(num>=max) 

      { 
      max=num; 
      System.out.println(max); 
      } 
      if(num<min) 
      { 
      min=num; 
      System.out.println(min); 
      } 
    } 
} 
+0

你的代碼的哪一部分正在評估min/max/avg? –

+0

while循環中的條件應該是input.hasNext() –

回答

1

創建局部變量和初始化它們喜歡:

int count; 
double min = Double.MAX_VALUE; 
double max = Double.MIN_VALUE; 
double sum = 0; 

每當你讀取輸入的雙重價值,做這樣:

count++; 

if (d<min) min = d; 
if (d>max) max = d; 

sum += d; 

最後

double average = sum/count; 
+0

謝謝!我將使用另一個測量天氣信息的程序的輸入,那麼我怎樣才能做到這一點呢?我需要衡量日期,時間和價值。 – javakook

+0

更改拼寫錯誤,應該分配Double.MAX_VALUE,MIN_Value但不是整數。 –

+0

看起來你正在做這個任務。它是一個Java編程任務或其他東西?如果不是編程任務,您可以通過許多簡單的方法獲得結果。你可以嘗試簡單的Excel。 回到編程,來自另一個程序的輸入是來自一個文本文件嗎?你打算獲取最大值/最小值/平均值的值嗎?什麼是「措施」呢? –

0
import java.util.Scanner; 
public class Assignment4 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     double num,sum=0,min,max; 
     max = Integer.MAX_VALUE; 
     min = Integer.MIN_VALUE; 
     int count=0; 
     while (input.hasNext()) { 
       num=input.nextInt(); 
       sum+=num; 
       count++; 
       if(num>=max) 
       { 
       max=num; 
       } 
       if(num<min) 
       { 
       min=num; 
       } 
     } 
     double avg=sum/count; 
     System.out.println("The Average of Numbers is:"+avg); 
     } 

} 
+0

如何添加日期變量我正在測量最小/最大值和平均值? – javakook

+0

日期變量是從用戶那裏獲取輸入嗎? num = input.nextInt();將其更改爲 num = input.nextDouble(); 它需要用戶輸入 –

+0

謝謝。爲了得到最小/最大/平均值的時間以及我只是做一個類似的事情? – javakook

相關問題