2016-12-15 3 views
-5
package test; 

public class Test { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     double[] myList=new double[10]; 
     System.out.println("enter values"); 
     for (int i = 1; i < myList.length; i++) { 
      java.util.Scanner input=new java.util.Scanner(System.in); 
      int j = (int)Math.random() * myList.length; 
      double tmp=myList[j]; 
      myList[i]=myList[j]; 
      myList[j]=tmp; 
      System.out.println(tmp);  
     } 
    } 
} 

Warum druckt 0.0?shuffling Zahlen im Array

+1

Sie nie irgendwelche Werte im Array setzen sollten . Du tauscht einfach eine Menge '0.0' Doppel um. – CollinD

+0

Haben Sie 'Scanner' Objekt' Input' (10 Mal erstellt) einmal verwendet? Der Standardwert von int ist 0 – GurV

+0

Könnten Sie uns mehr Informationen als eine Methode und ihre Ausgabe liefern? –

Antwort

0

doubles und Integers werden als 0 initialisiert, also ist Ihr Array tatsächlich 10 Nullen.

Sie müssen ein paar Dinge:

double[] myList=new double[10]; 
System.out.println("enter values"); 
java.util.Scanner input=new java.util.Scanner(System.in); 
for (int i = 0; i < myList.length; i++) { 
    myList[i] = input.nextDouble();// get input from user and put it into array 
} 
//and then we swap 
for (int i = 0; i < myList.length; i++) { 
    int j = (int)Math.random() * myList.length; 
    double tmp=myList[j]; 
    myList[i]=myList[j]; 
    myList[j]=tmp; 
} 
System.out.println(tmp); 

Es gibt ein paar Probleme waren:

  1. Ihre Scanner wurde nicht verwendet wird, und Sie erstellt es 10-mal (weil es in die Schleife)
  2. Sie nicht das Array hat initialisieren, so dass alle Werte sind 0.0

  3. Sie begann am Index Looping 1, so dass Sie verpassen einige Werte

+2

downvoter, bitte erarbeiten – ItamarG3

+0

Dies ist für die down-Wähler: http: // meta. stackoverflow.com/questions/255459/is-it-okay-to-downvote-answers-to-bad-questions/255861#255861 – user3437460

+0

@ user3437460 wow. Vielen Dank (das ist nicht ironisch überhaupt Ich habe die Meta für so etwas seit mindestens einem Monat gesucht) – ItamarG3

0

, wenn Sie wirklich die Werte wollen Swipe als Schleife wie unten

for (int i = 0; i < myList.length; i++) { 
    int j = (int)Math.random() * myList.length; 
    double tmp=myList[i]; 
    myList[i]=myList[j]; 
    myList[j]=tmp; 
}