2016-06-02 17 views
-1

Ich versuche ein Programm zu erstellen, das den Benutzer auffordert, 20 doppelte Werte einzugeben. Das Programm addiert dann die Summe aller Eingaben und berechnet den Durchschnittswert. Dann muss ich die Summe, Durchschnitt, Werte kleiner als 5.00 und Werte anzeigen, die größer als der berechnete Durchschnitt sind. Bisher bin ich dazu in der Lage. Wir wurden jedoch auch aufgefordert, alle Elemente in absteigender Reihenfolge anzuzeigen. Wir wurden in die Blasensortierung eingeführt, aber ich kann nicht herausfinden, wo und wie ich sie in meine aktuellen Codes einfügen kann, da dies die anderen Ergebnisse beeinflusst. Hierfür dürfen wir übrigens nur BufferedReader verwenden.Wie und wo kann ich meinen Bubble-Sortieralgorithmus in Java platzieren

Dies ist der Code, den ich bisher:

import java.io.*; 
public class Prices { 
public static void main(String[]args)throws IOException{ 

    BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); 
    double [] price = new double [5]; 
    double sum = 0, ave = 0, temp; 

    System.out.print("Enter a value that has a decimal point: "); 

    for(int i=0; i<price.length;i++) 
//loop for accepting values for the array, adding values and getting the ave of the values 
    { 

     price[i] = Double.parseDouble(br.readLine());//holds the values of the input 

     sum += price[i];//adds all the input 
     ave = sum/5;//divides the computed sum by array size 
    } 
    // for printing the total sum & ave 
    System.out.println("The sum is = "+sum); 
    System.out.println("The average is = "+ave); 

    for(int i=0; i<price.length;i++){//loop for displaying values<5.00 and values>computed ave.  
    if (price[i]<5.00) 
    { 
     System.out.println("Values less than 5.00: "+ price[i]); 
    } 
    if (price[i]>ave) 
    { 
     System.out.println("Values greater than average: "+ price[i]); 
    } 
    } 
} 
} 
+0

Sortieren Sie es, nachdem Sie alle gültigen Werte für das Array eingegeben haben. Ex. Direkt über der system.out.println (Summe ist = ...) Codezeile –

Antwort

1

Sie möchten Ihre BubbleSort algorythm am Ende zu setzen, in dem ‚main‘ Verfahren nach der Schließung der letzten if-Anweisung so, dass was auch immer Ändern Sie es in das Array wird es nicht mit dem Rest des Programms stören.

Alternativ könnten Sie eine Kopie des Arrays erstellen, an dem gearbeitet wird, so dass das Haupt-Array nicht betroffen ist, egal wo Sie den Algorithmus in der Methode platzieren, aber ich empfehle das in diesem Fall nicht.

0

Ich sehe keine Art passiert hier. Alles, was passiert, ist das Durchlaufen des Arrays und das Drucken auf Standardausgabe.

Erstellen Sie eine neue Methode, rufen Sie bubbleSort in der Prices-Klasse auf und übergeben Sie das Array, das für diese Methode gelesen wurde. Eine einfache Implementierung ist hier https://en.wikipedia.org/wiki/Bubble_sort#Implementation Blasensortierung ist eine In-Place-Sortierung, also wird das ursprüngliche Array modifiziert.