前提・実現したいこと
二つのサイコロを振って、目の合計を出力するプログラムを作りたいです。
条件としてgetRandomIntという自作関数を使用します。
発生している問題・エラーメッセージ
実行結果が以下のようになってしまいます。
該当のソースコード
java
1public class Ex08_01 { 2 static double getRandomDouble(double low, double high) { 3 double ans = 0.0; 4 double r = Math.random(); 5 ans = low + r * high; 6 return ans; 7 } 8 static int getRandomInt(int low, int high) {//この関数を使います 9 int ans = 0; 10 ans = (int) getRandomDouble(low, high); 11 return ans; 12 } 13 public static void main(String[] args) { 14 int i,total; 15 int[] d = {0,0,0,0,0,0,0,0,0,0,0}; 16 i = 0; 17 total = 0; 18 while(i < 3600) {//3600回振ります 19 int x = getRandomInt(0, 6);//サイコロX 20 int y = getRandomInt(0, 6);//サイコロY 21 total = x + y; 22 d[total]++; 23 i++; 24 } 25 System.out.println("二つのサイコロを振ったとき、");//目の合計がそれぞれ何回あったのか出力します 26 System.out.println("目の合計が2だったのは"+d[0]+"回"); 27 System.out.println("目の合計が3だったのは"+d[1]+"回"); 28 System.out.println("目の合計が4だったのは"+d[2]+"回"); 29 System.out.println("目の合計が5だったのは"+d[3]+"回"); 30 System.out.println("目の合計が6だったのは"+d[4]+"回"); 31 System.out.println("目の合計が7だったのは"+d[5]+"回"); 32 System.out.println("目の合計が8だったのは"+d[6]+"回"); 33 System.out.println("目の合計が9だったのは"+d[7]+"回"); 34 System.out.println("目の合計が10だったのは"+d[8]+"回"); 35 System.out.println("目の合計が11だったのは"+d[9]+"回"); 36 System.out.println("目の合計が12だったのは"+d[10]+"回"); 37 } 38}
試したこと
インターネットで調べましたが、自作関数を使用するという条件にあるため、解決できませんでした。
補足情報(FW/ツールのバージョンなど)
質問に不十分なところがあれば、修正希望お待ちしています。
また、プログラミング初心者のため根本的におかしいところがあるかもしれませんが、お手柔らかにお願いします。
回答4件
あなたの回答
tips
プレビュー