2016-10-10 39 views
-3

有一個程序計算數組中的一組內置數字之間的最小差異(因爲在這種情況下,最小差異是3,因爲數字的最小差異在4和1之間) 。我想程序中值使用for循環設定值進入到6量這是低於當前的代碼,而不是採取從用戶:存儲值的用戶輸入以顯示最小差異

import java.util.*; 


public class Mindifference { 


Scanner numinput= new Scanner(System.in); 
public static void main(String[] args) 
{ 
    int[] a = new int[] {4, 9, 1, 32, 13}; 
    Arrays.sort(a); 
    int minDiff = a[1]-a[0]; 
    for (int i = 2 ; i != a.length ; i++) { 
     minDiff = Math.min(minDiff, a[i]-a[i-1]); 
    } 
    System.out.println(minDiff);  
} 
    } 
+0

什麼是輸出?你期望輸出什麼? – Bathsheba

+0

我希望輸出是最小差值的計算值。因此與當前代碼所做的一樣,它會打印出3,因爲這些數字之間的最小最小差異在1和4之間。 – megasxrl

回答

0

初步實現:

import java.util.Arrays; 
import java.util.Scanner; 

public class MinDifference 
{ 

    public static void main(String[] args) 
    { 
    Scanner scanner = new Scanner(System.in); 
    int[] inputs = new int[6]; 
    for (int i = 0; i < 6; i++) 
    { 
     System.out.print("Enter an integer: "); 

     inputs[i] = scanner.nextInt(); 
    } 
    scanner.close(); 
    Arrays.sort(inputs); 
    int minDiff = inputs[1] - inputs[0]; 
    for (int j = 2; j != inputs.length; j++) 
    { 
     minDiff = Math.min(minDiff, inputs[j] - inputs[j - 1]); 
    } 
    System.out.printf("The minimum difference is %d", minDiff); 
    } 
}