前提・実現したいこと
下記プログラムでfreqの数値出力を"+"で数分+++++++++描画するにはどうすればいいのでしょうか?
import java.util.Random;
public class T_08_6 {
public static void main(String[] args) {
Random rand = new Random();//乱数発生準備
int freq[] = new int[7]; //要素7つ=サイコロ1-6の配列を生成
for(int roll=1; roll<=100; roll++){ //サイコロを100回振る ++freq[1+rand.nextInt(6)]; //出た目をカウントする
}
for(int face=1; face<freq.length;face++) { System.out.println(face +":"+ freq[face]); //画面に出力 } }
}
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
たぶん出力は以下のような想定ですよね?
1: ++++ 2: ++ 3: ++++++ 4: + 5: +++++ 6: +++
こういう場合、繰り返し箇所はサイコロの目の分(1-6)と、それぞれの出現回数(+)になります。
やろうと思えば1重ループでできるかもしれませんが、単純に考えるなら2重ループで行いましょう。
投稿2018/12/05 05:22
総合スコア5158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/05 05:28
2018/12/05 05:35
2018/12/05 05:50
2018/12/05 05:52
2018/12/05 05:57
2018/12/05 06:00
2018/12/05 07:42
2018/12/05 07:44
2018/12/05 08:21
2018/12/05 08:34
2018/12/05 09:06
2018/12/05 09:08
2018/12/05 09:17
2018/12/05 09:24
2018/12/05 09:26
0
すいません。完璧違いました。
diceさんの言っているとおり、二重ループにしましょう。
原文だと、
cmd
11:302:10
みたいになってしまいます。
原文
for(int face=1; face<freq.length;face++){ System.out.println(face +":"+ freq[face]); //画面に出力 }
だと、縦に並んでしまうので
for(int face=1; face<freq.length;face++){ System.out.print(face +":"+ freq[face]); //画面に出力 }
としましょう。
投稿2018/12/05 05:18
編集2018/12/05 05:26総合スコア624
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。