2017-01-11 2 views
-1

J'ai un code pseudo à mettre en œuvre en Java, mais je fais quelque chose de mal, voici la tâche et ce que j'ai jusqu'à présent:Pseudo code Java Arrays

  • Le pseudo-code:

Algoritm ArrayMax(arr)

entrée: A 1-D réseau numérique Arr de taille n> 0.

  1. Soit CurrentMax = Arr^0

  2. Pour i = 1 à n-1

  3. Si Arr^i> CurrentMax Alors CurrentMax = Arr^i

  4. Fin Pour

Sortie: CurrentMax, la plus grande valeur dans Arr

  • Les instructions:

Nous allons mettre en œuvre et tester Algoritm ArrayMax(arr).

Le code suivant snipper peut être utilisé comme base pour votre travail

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); 
} 

Testez votre travail sur un certain nombre de différents ensembles de données d'entrée.

Enfin créer une nouvelle version de votre programme qui fonctionne avec un ArrayList

Voici ce que je l'ai fait:

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

s'il vous plaît inclure le '' Task' et Pseudo' sous forme de texte dans la question (texte wont obtenir invalide, les liens de l'autre côté peuvent obtenir invalides). Aussi, vous pourriez vouloir dire où vous êtes coincé. Vous obtenez une exception, une erreur de compilation ou un mauvais résultat peut-être. Vous voulez que nous vous aidions, alors aidez-nous à comprendre comment nous pouvons vous aider :) – SomeJavaGuy

+1

Il y a une faute de frappe, c'est 'return CurrentMax;'. – Berger

+1

aussi, 'n', comme utilisé pour la condition de boucle, n'est défini nulle part et je suppose que vous voulez' arr.length', et 'i' est manquant son type de classe, à partir de' int i ... 'ici – SomeJavaGuy

Répondre

1

Vous avez une mauvaise mise en œuvre de ArrayMax, vous oubliez les variables initiales « i " et n". Ici vous avez bien fonctionner:

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); 
}