2013-03-07 67 views
-4

編寫一個接受用戶想要輸入的整數的程序。確定最高和最低數字,並從最高數字中減去所有其他數字。我無法區別。我知道這裏失蹤了。請幫幫我。最高,最低和和在java中扣除的答案

import java.util.*; 
//Misty Stewart 
public class HighestLowestDifference2324 { 

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

     double maxValue = Double.MIN_VALUE; 
     double minValue = Double.MAX_VALUE; 
     double minValue1 = Double.MAX_VALUE; 
     double minValue2 = Double.MAX_VALUE; 

     int count = 0; 
     double difference = 0; 

     System.out.println("Enter numbers. Terminate with Q."); 
     while (input.hasNextDouble()) { 

      double Value = input.nextDouble(); 

      if (Value > maxValue) { 
       maxValue = Value; 
      } 
      if (Value < minValue) { 
       minValue = Value; 
      } 
      if (Value < minValue) { 
       minValue1 = Value; 
      } 
      if (minValue == minValue1) { 
       minValue = Value; 
      } 
      if (Value < minValue1) { 
       minValue2 = Value; 
      } 
      if (minValue1 == minValue2) { 
       minValue1 = Value; 
      } 
     } 
     count++; 
     difference = maxValue - minValue; 
     { 
      if (count > 0) { 
       System.out.println("Highest no. is: " + maxValue); 
       System.out.println("Lowest no. is: " + minValue); 
       System.out.println("The difference from the highest is: \n" + difference); 
      } else { 
       System.out.println("Have a good day!"); 
      } 
     } 
    } 
} 
+0

例如:15,20,29,38,12,42 輸出: 最高:42 最低:12 [從最高的區別是: [42 -15] = 27 [42-20] = 22 [42-29] = 13 [42-38] = 4 [42-312] = 30 ..請幫助me.thanks – thisOneNeedsHelp 2013-03-07 11:33:35

+1

是否有一個問題?你可以使用'Math.min'和'Math.max'來清除代碼 – Esailija 2013-03-07 11:33:36

+1

有一個任務和一些代碼。有一些遺漏:一個問題! – jlordo 2013-03-07 11:33:44

回答

0

這樣如何:

double maxValue = Double.MIN_VALUE; 
    double minValue = Double.MAX_VALUE; 
    List<Double> allValues = new ArrayList<Double>(); 
    while (input.hasNextDouble()) { 
     double value = input.nextDouble(); 
     maxValue = Math.max(maxValue, value); 
     minValue = Math.min(minValue, value); 

     allValues.add(value); 
    } 

    System.out.println("Highest no. is: " + maxValue); 
    System.out.println("Lowest no. is: " + minValue); 
    System.out.println("The difference from the highest is:" + (maxValue - minValue)); 
    for (Double value : allValues) { 
     System.out.println("The difference from the highest is:" + (maxValue - value)); 
    } 
+0

謝謝..它太接近了!^_^...但仍然有問題.. – thisOneNeedsHelp 2013-03-07 12:14:52

+0

先生,如果我輸入數字:15,20,29,38,12,42 ...它顯示:30,27,22,13,4,30 ,0 – thisOneNeedsHelp 2013-03-07 12:17:16

+0

accrdg。對我的教授來說,它只能是:27,22,13,4,30 ..只有一個30而不是零..因爲42-15 = 27; 42-20 = 22; 42-29 = 13; 42-38 = 4; 42-12 = 30 – thisOneNeedsHelp 2013-03-07 12:18:09

1

您需要將用戶輸入的值存儲在數組中。然後,一旦你有了maxVAlue,用循環迭代數組並計算並顯示差異。

0
while (input.hasNextDouble()) { 
num = input.nextDouble(); 
if (num > max) max = num; 
if (num < min) min = num; 
} 

difference = max -min; 

上面的代碼可以用來得到的最高,最低,他們從號碼列表差異

0

你或許應該全部輸入數字,存儲在Collection例如一個ArrayList,做你的分析算賬:

ArrayList<Double> list = new ArrayList<Double>(); 
while (input.hasNextDouble()) { 
    double value = input.nextDouble(); 

    // logic for determining largest & smallest 

    list.add(value); 
} 

,又重新遍歷ArrayList得到您所需的輸出。

+0

sir blagae,你可以請。添加到我的代碼並顯示它?... – thisOneNeedsHelp 2013-03-07 11:57:15

+0

我不知道如何做陣列,呃?..請。^_^ – thisOneNeedsHelp 2013-03-07 11:58:17