2015-06-19 50 views
-4

我需要我的程序執行以下操作。Java數組和方法問題

  1. 創建一個名爲toString的函數,該函數返回「數組字符串格式」中數組值的可打印字符串。

  2. 創建一個名爲rangeInArray的函數,該函數返回數組中值的範圍。在數學中,範圍是最小值和最大值(包括)之間差值的大小。我已經有了min和max的方法來使用它們,並且不需要爲這個方法包含任何循環。

這是我目前的代碼。

public class WestAndersonAsmnt9 { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     int Sample_Array_1[] = {4,7,9,3,2,8,15,6,8,7}; 
     int Sample_Array_2[] = {12,6,4,8,3,7,11,1,6}; 
     IntegerArray arr = new IntegerArray(Sample_Array_1.length); 
     IntegerArray arr2 = new IntegerArray(Sample_Array_2.length); 
     IntegerArray arr3 = new IntegerArray(Sample_Array_1); 
     IntegerArray arr4 = new IntegerArray(Sample_Array_2); 
     arr.fillRandom(100, 200); 
     arr.printLiteral(); 
     arr2.fillRandom(100, 200); 
     arr2.printLiteral(); 
     arr.copy(Sample_Array_1); 
     arr.printLiteral(); 
     arr.copy(Sample_Array_2); 
     arr.printLiteral(); 
     arr3.sumOfArray(); 
     arr4.sumOfArray(); 
     arr3.maxInArray(); 
     arr4.maxInArray(); 
     arr3.minInArray(); 
     arr4.minInArray(); 
     arr3.rangeInArray(); 


    } 

} 


public class IntegerArray { 
    int arr[]; 

    public IntegerArray(int size) { 
     arr = new int[size]; 
    } 

    public IntegerArray(int value[]) { 
     arr = value; 
    } 

    public void fillRandom(int from, int to) { 
     int range = (to - from) + 1; 
     for (int i = 0; i < arr.length; i++) { 
      arr[i] = (int) (Math.random() * range) + from; 
     } 
    } 

    public void printLiteral() { 
     if (arr == null) { 
      System.out.println("No array"); 
     } else if (arr.length <= 0) { 
      System.out.println("{}"); 
     } else { 
      System.out.print("{" + arr[0]); 
      for (int i = 1; i < arr.length; i++) { 
       System.out.print("," + arr[i]); 
      } 
      System.out.println("}"); 
     } 
    } 

    public void copy(int copy[]) { 
     arr = copy; 
    } 

    public void sumOfArray() { 
     int sum = 0; 
     for (int counter = 0; counter < arr.length; counter++) { 
      sum += arr[counter]; 
     } 
     System.out.println("The sum is " + sum); 

    } 

    public int maxInArray() { 
     int largest = arr[0]; 
     for (int i = 1; i < arr.length; i++) 
      if (arr[i] > largest) { 
       largest = arr[i]; 
     } 
     System.out.println("The max is " + largest); 
     return largest 
    } 
    public int minInArray() { 
     int smallest = arr[0]; 
     for (int i = 1; i < arr.length; i++) 
      if (arr[i] < smallest) { 
       smallest = arr[i]; 
      } 
     System.out.println("The mmin is " + smallest); 
     return smallest 
    } 
    public int rangeInArray() { 
    int range = maxInArray() - minInArray() + 1; // + 1 for "inclusive" 
    System.out.println("The range is " + range); 
    return range; 
    } 

} 
+4

PDF鏈接是密碼保護的後面,這使得您的問題無法回答,因爲它需要引用PDF。 – hexafraction

+0

謝謝你指出。我已經解決了這個問題。 – Jetster220

+1

試着簡化這個問題。沒有人想讀那麼多。 – Whitecat

回答

0

更改maxInArray()minInArray()返回整數。

public int maxInArray() { 
    int largest = arr[0]; 
    for (int i = 1; i < arr.length; i++) 
     if (arr[i] > largest) { 
      largest = arr[i]; 
    } 
    System.out.println("The max is " + largest); 
    return largest; 
} 

public int minInArray() { 
    int smallest = arr[0]; 
    for (int i = 1; i < arr.length; i++) 
     if (arr[i] < smallest) { 
      smallest = arr[i]; 
     } 
    System.out.println("The mmin is " + smallest); 
    return smallest; 
} 

public int rangeInArray() { 
    int range = maxInArray() - minInArray() + 1; // + 1 for "inclusive" 
    System.out.println("The range is " + range); 
    return range; 
} 
+0

謝謝,當我運行時,它並沒有給出範圍,它只是吐出相同的結果形式的maxInArray和minInArray方法。 – Jetster220

+0

@ Jetster220對不起。我改變了我的代碼以適應你的風格。 – saka1029

+0

謝謝,好多了。有沒有辦法沒有它也說明最大值和最小值? – Jetster220