2017-03-06 7 views
-5

javaでforループを使用して配列内に20個の乱数のシーケンスを生成しソートするのに問題があります。実行されますが、適切な出力は生成されません。 math.randomのインポートは使用されていません.netbeansごとに、なぜ私はそれを呼び出すのか分かりません。私は何時間も役に立たないためにそれに取り組んできました。配列内の20個の数字のシーケンスを生成してソートする(Java用)

package problem1; 

import java.util.Arrays; 
import java.util.Random; 

public class problem1 
{ 
public static void main(String[] args) 

{ num num = new num(); 
    int[] array = new int[20]; 

    printSequence(array); 
} 
private static void printSequence(int[] num) 
{ 
for(int i = 0; i < 20; i++) 
{ 
    int RandomNum = num[i]; 
    RandomNum = (int) (Math.random() * 99 + 1); 

System.out.println("The sequence is: "); 
printSequence(RandomNum); 
} 
} 

private static printOrderedSequence(int[] array) 
{ 
    Arrays.sort(array); 
for(int i = 0; i < array.length; i++) 
System.out.println("The sequence in order is: "); 
Arrays.toString(array); 
} 
} 
+0

あなたの最初のforループ内であなたのロジックを再検討してください。 –

+0

'math.random'インポートはありません。 * 'java.util.Random' *は、このコードで' Random'クラスを使用していないので使用されていません。 'java.util.Random'をインポートする必要はありません。 –

+0

'Arrays.toString(array)'は 'System.out.println(...) 'の呼び出しの一部ではないため、配列は印刷されません。それは単にそれ自身の文のメソッド呼び出しです。 –

答えて

0

あなたはすでにjava.util.Arraysをインポートしていますが、それを使ってシーケンスをプリントアウトするのはなぜですか?

注:私は(あなたが使用してに戻すに使用できるjava.util.Randomの不要なインポートを削除したことをあなたがしたい、と何でもnumだった場合のために、私は考えるように、その必要以上に複雑に作られたすべてのもの

import java.util.Arrays; 

public class problem1 { 
    public static void main(String[] args) { 

    int[] sequence = new int[20]; 

    //Generates 20 Random Numbers in the range 1 to 99 
    for(int i = 0; i < sequence.length; i++) 
     sequence[i] = (int)(Math.random() * 99 + 1); 

    System.out.println("The sequence is: " + Arrays.toString(sequence)); 

    //Sort the sequence 
    Arrays.sort(sequence); 

    System.out.println("The sorted sequence is: " + Arrays.toString(sequence)); 
    } 
} 

出力例:

The sequence is: [10, 25, 94, 61, 59, 14, 64, 90, 28, 54, 29, 17, 71, 74, 95, 9, 56, 46, 44, 57] 
The sorted sequence is: [9, 10, 14, 17, 25, 28, 29, 44, 46, 54, 56, 57, 59, 61, 64, 71, 74, 90, 94, 95] 

here!

それを試してみてください
+0

ありがとうございますが、いくつかの質問があります。私が以前にオンラインで読んだことのすべては、配列をソートするために2回目のforループが必要だと言っていました(私が独自のプライベートクラスで行ったように)。これは冗長ですか?次に、math.randomを使って数値を無作為にどのように生成しますか? – Squilly

+0

配列を並べ替えるには、最初から並べ替えを実装する必要がある場合は、これを行う前に 'Arrays.sort'を使用します。 https://rosettacode.org/wiki/Sorting_algorithms。第二に、Javaで 'Math'を特にインポートする必要はなく、' Math.random'を使うことは、Javaで乱数を生成するより簡単な方法の1つです。 – shash678

関連する問題