2017-11-14 2 views
-4

Das Problem lautet "Schreiben Sie eine Methode namens findMaxGrade. Die Methode wird ein Array von int als Parameter und es wird den größten Wert aus dem Array (d. H., Die größte Note) zurückgeben."Wie stelle ich das Programm so ein, dass es die maximale Note findet?

Ich kann meinen Kopf nicht um ihn herum arbeiten. Zuvor musste ich dem Benutzer eine Reihe von Noten geben, den Durchschnitt davon ermitteln und der Note einen entsprechenden Brief geben. Wie soll ich das Programm so einstellen, dass es die Eingaben liest und weiß, welche die höchste ist? So soll es richtig funktionieren?

import java.util.Scanner; 
public class ArrayExample3{ 
    public static void main(String [] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Please enter the total number of grades"); 
     int n = input.nextInt(); 
     double [] array = new double [n]; 
     double total = 0.0; 

     for(int i = 0; i < array.length; i++){ 
      System.out.println("Please enter the grade #"+(i+1)); 
      double g = input.nextDouble(); 
      array[i] = g; 
      total += array[i]; 
     } 
     double avg = total/array.length; 

     System.out.println("AVG: "+avg); 

     System.out.println(getGradeByAVG(avg)); 

    } 
    public static String getGradeByAVG(double avg){ 

     String letterGrade = ""; 
     if(avg >= 90 && avg <= 100) { 
      letterGrade = "A"; 
     } 
     else if(avg >= 80 && avg <= 89) { 
      letterGrade = "B"; 
     } 
     else if(avg >= 70 && avg <= 79) { 
      letterGrade = "C"; 
     } 
     else if(avg >= 60 && avg <= 69) { 
      letterGrade = "D"; 
     } 
     else if(avg < 60) { 
      letterGrade = "F"; 
     } 
     return letterGrade; 
    } 
} 
+0

das ist ... eine Menge Code für eine Anforderung, dass nur etwa fünf Zeilen benötigt. Schritt 1: Lese ein Array. Schritt 2: Speichern Sie das erste Element in einem separaten Element Schritt 3: Iterieren Sie über das Array. ist das iterierte Element höher als das separate Element, das separate Element ersetzen, am Ende das separate Element – Stultuske

+0

zurückgeben, weil es Teil einer Reihe von Problemen ist haha. Danke für Ihre Hilfe (: –

Antwort

0

Diese Methode sollte es tun:

public int findMaxGrade(int [] array, n) 
     { 
      int max = -1; 
      for(int i = 0; i < n, i++) 
       if(max<array[i]) 
        max = array[i]; 

      return max; 

     } 

Und Sie können es nennen von: findMaxGrade(array, n);

+0

George: Was lässt Sie annehmen, dass negative Werte nicht erlaubt sind? Nehmen wir an, es gibt zwei Eingänge, -3 und -5, dann wäre das Ergebnis -1. Es ist besser, max auf Array initialisiert zu haben. 0] und starten Iteration von i = 1 – Stultuske

+0

@Stultuske Natürlich würden Sie Recht haben, aber in diesem Fall glaube ich nicht, dass eine Note einen negativen Wert haben könnte.Objektiv alternativ könnten Sie Max den Wert der ersten geben Wert des Arrays –

+0

Ich werde nicht sagen, dass ich stolz darauf bin, aber ich habe einmal eine negative Note bekommen;) also bin ich offen für eine Menge: D – Stultuske

Verwandte Themen