2017-02-15 6 views
-3

私は宿題のためにサイコロを返却しており、各番号が回った回数をカウントすることに問題があります。私はメインにロールバックして配列に追加しましたが、それは数え切れません。私は人々が言っ​​たことを試して、いくつかの変更を加え、より近づいていますが、まだカウンターが正しくありません。返却カウンターでカウントしない

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.print("How many times should I roll the dice? "); 
    int userIn = input.nextInt(); 
    int[] rolls = new int[13]; 
    rolls[simDiceRoll(userIn)]++; 
    for(int i = 2; i < rolls.length; i++) { 
     System.out.println(i + " was rolled " + simDiceRoll(userIn) + " times"); 
    } 

} 
    public static int simDiceRoll (int userNum) { 
     int roll1 = (int) (Math.random() * 6) + 1; 
     int roll2 = (int) (Math.random() * 6) + 1; 
     int rolls = roll1 + roll2; 
     return rolls; 
    } 

出力

How many times should I roll the dice? 10000 
2 was rolled 10 times 
3 was rolled 10 times 
4 was rolled 7 times 
5 was rolled 5 times 
6 was rolled 8 times 
7 was rolled 12 times 
8 was rolled 9 times 
9 was rolled 6 times 
10 was rolled 10 times 
11 was rolled 6 times 
12 was rolled 6 times 
+2

あなたのプログラムは、任意の配列を使用していません。 Java配列に関するチュートリアルを参照することを検討することもできます。https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

* what * array? –

答えて

0

あなたが作りたいサイコロのロールの量を与え、ユーザの入力を持っています。 forループでその数を使用し、整数のサイズが14の配列を作るだけです。すべてのループで、配列[number rolled]に1を追加するだけです。最後に、この配列内のすべての項目をコード内にループして値を出力します。

これがあなたを助けてくれることを願っています。

0

まず、コードに配列がありません。 "int rolls"がループの内側ではなくの前にの前に定義されているため、毎回 "7"という結果が得られる理由があります。

は 'simDiceRoll(userIn)' と 'ロール' を交換してみてください。

System.out.println(i + " was rolled " + simDiceRoll(userIn) + " times"); 
関連する問題