2017-01-11 49 views
-1

我有一個僞代碼在Java中實現的,但是,我做錯了什麼,這裏的任務,是我到目前爲止有:僞代碼Java數組

  • 的僞代碼:

Algoritm ArrayMax(arr)

輸入:A 1-d的數值陣列編曲大小爲n> 0的。

  1. 讓CurrentMax =編曲^ 0

  2. 對於i = 1到n-1

  3. 如果編曲^ I> CurrentMax然後CurrentMax =編曲^ I

  4. END FOR

輸出:CurrentMax,Arr中的最大值

  • 的說明:

我們要實現和測試algoritm ArrayMax(arr)

下面的代碼剪斷可以作爲基礎工作

public static void main(String args[]){ 
    double arr[]= {1,-6.3,9000,1.1,0.0,-456,6,23,-451.88}; 
    System.out.println(ArrayMax(arr)); 
} 

public static double ArrayMax(double arr[]){ 
    double CurrentMax = arr[0]; 
    // Complete the algorithm here... 
    return(CurrentMax); 
} 

測試你在許多不同的輸入數據集的工作。

最後創建程序的新版本與ArrayList

這裏工作是我做了什麼:

import java.util.Scanner; 

public class CS1702_65 { 

    public static double ArrayMax(double arr[]){ 
     double CurrentMax = arr[0]; 
     for(i = 1;i<n-1;i++) 
     { 
      if (arr[i] > CurrentMax){ 
       CurrentMax = arr[i]; 
      } 

     } 
     return(CurrentMax); 
    } 

    public static void main(String args[]){ 

     //Scanner input = new Scanner(System.in); 
     // System.out.print("Enter a 1D numerical array Arr of size n>0:  "); 
     // int x = input.nextInt(); 

     double arr[]= {1,-6.3,9000,1.1,0.0,-456,6,23,-451.88}; 
     System.out.println(ArrayMax(arr)); 
    } 

} 
+0

請包括'Task'和'Pseudo'作爲問題中的文本(文本不會得到無效的,在另一邊鏈接可以獲得無效)。你也可能想說你卡在哪裏。你可能會遇到異常,編譯器錯誤或錯誤的結果。你希望我們幫助你,所以幫助我們理解我們如何能夠幫助你:) – SomeJavaGuy

+1

有一個錯字,它是'返回CurrentMax;'。 – Berger

+1

也,'n',用於循環條件,沒有被定義在任何地方,我想你想'arr.length',並且'i'缺少它的類類型,就像'int i ... '這裏 – SomeJavaGuy

回答

1

你有不良的實施ArrayMax的,你忘了最初的變量「我「和」n「。 在這裏,你已經正常運行:

public static double ArrayMax(double arr[]){ 
     double CurrentMax = arr[0]; 
     int n = arr.length; 
     for(int i = 1;i<n;i++){ 
     if (arr[i] > CurrentMax){ 
      CurrentMax = arr[i]; 
     } 
     } 
     return CurrentMax; 
    } 
0
public static <T extends Comparable<T>> T maxOfArray(T[] arr){ 
    if (arr != null && arr.length > 0) { 
     T max = arr[0]; 
     for (int index = 1; index < arr.length; index++) { 
      if (max.compareTo(arr[index]) < 0) { 
       max = arr[index]; 
      } 
     } 
     return max; 
    } 
    return null; 
} 

public static void main(String[] args) { 
    final Double maxOfArray = maxOfArray(new Double[]{1D, 1.1, 3D}); 
    System.out.println("maxOfArray = " + maxOfArray); 
}