2016-04-12 10 views
-1

これに問題があります。同じ1-10スパンを持つ追加の単一乱数を生成する必要があります。私は乱数の20の整数配列を生成するランダムジェネレータのコードをすでに持っていますが、同じメソッド内で同じスパン内に1つの乱数を生成するにはどうすればいいですか?これは私が今までに持っているもので、20の整数配列から乱数0を与え続けます。前もって感謝します。 printNum()20個の整数の配列から追加の乱数を生成する

import java.util.Scanner; 
import java.util.Random; 
class Main{ 
public static final Random RND_GEN = new Random(); 
    public int[] createNum(int[] randomNumbers) { 
    for (int i = 0; i < randomNumbers.length; i++) { 
     randomNumbers[i] = RND_GEN.nextInt(10) + 1; 
    } 
    for (int i = 0; i < 1 ; i++){ 
    randomNumbers[i] = RND_GEN.nextInt(10) + 1; 

    } 

    return randomNumbers; 
} 

public void printNum(int[] randomNumbers){ 
    for (int i = 0; i < randomNumbers.length; i++) { 
     System.out.println("Number " + i + " : " + randomNumbers[i]); 
    } 
    for (int i = 0; i < 1; i++){ 
    System.out.println("Single # is: "+randomNumbers[i]); 
} 
} 
public void searchArray(int[] randomNumbers, int numSearch) { 
int count = 0; 

for (int i : randomNumbers) { 
    if (i == numSearch) { 
     count++; 
    } 
} 
if (count == 0) { 
    System.out.println("Number # " + numSearch + " was not found!"); 
} else { 
    System.out.println("Number #" + numSearch + " occurred " + count + "    times."); 
} 
} 





public void run() { 
    Scanner inputReader = new Scanner(System.in); 
    int x = 1; 
    do { 
     int[] numbers = new int[20]; 
     numbers = createNum(numbers); 
     printNum(numbers); 

     System.out.print("Restart Program?, Enter 1 for YES, 2 for NO: "); 
     x = inputReader.nextInt(); 
    } while (x == 1); 
} 

public static void main(String[] args) { 
    Main go = new Main(); 
    go.run(); 
} 
} 
+0

@robotlos私はこの点に到達するために何も努力をしていません、おそらく私の脳は一日中この問題を見つめてから揚げられましたが、私は失われています、他の人の助けを求めるあなたの質問を通して、あなたが尋ねたことの大半(もしそうでなくても)がすばらしいGoogle検索で答えることができる場合は、このようなものになると私はもっと才能があります。 – kidbone222

+1

@ kidbone222助けを求めることと、誰かにあなたの任務を依頼することには違いがあります。 – Ceelos

+1

@Ceelos、私は誰も私のHWを行うように求めていない、問題は一日中Google検索することができますが、あなたが見ているものを理解していない場合、それは一定の闘争になります。コードが何をしているのかを理解している人たちのような紳士によって説明されたときに何をすべきかの例を見て、私は最もよく学びます – kidbone222

答えて

0

このループは疑わしい:

for (int i = 0; i < 1; i++){ 
    System.out.println("Single # is: "+randomNumbers[i]); 
} 

それは常にrandomNumbersの最初の要素を出力します。あなたが望むものをクリアしていないが、私は推測していた場合、それは次のようになります。randomNumbersのいくつかのランダムな要素を出力します

int i = RND_GEN.nextInt(randomNumbers.length); 
System.out.println("Single # is: " + randomNumbers[i]); 

を。または、おそらく:

int i = 1 + RND_GEN.nextInt(10); 
System.out.println("Single # is: " + i); 

1から10の間の独立した乱数を出力します。

P.S.あなたのコードには、疑わしいループのもう1つがcreateNum()にもあります。しかし、それはちょうどrandomNumbers[0]に第2の乱数を割り当てている点で無害なようです。

+0

これは、以前に生成された乱数の配列から得られたものである必要はなく、1から10までの数でなければなりません。そして、私が持っているループはすでに20の整数の最初の配列にある数字だけを出力します@ Ted Hopp – kidbone222

+0

@ kidbone222 - ループは 'randomNumbers'の最初の要素を出力します。おそらくあなたが望むのは 'System.out.println(" Single#は:+(RND_GEN.nextInt(10)+ 1)); 'です。 –

+0

ループを書き直して、randomNumbersの最初の要素を出力せず、乱数を出力する方法はありますか? @Ted Hopp – kidbone222

関連する問題