ここまで頑張って書いたのですが間違いがあると記入され返却されました。まだ、初心者であまり理解出来ていないです。答えでもヒントでもいいのでどう書けばいいか教えてください。変数名は僕のに合わせてくださいお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
学校の課題で苦労されているようですね。
プログラミングを学ぶ人として、webサービスやツールは正しく使うようにしましょう。
teratailは問題解決をサポートするための場所です。
質問文に以下のようにありますが、
答えでもヒントでもいいのでどう書けばいいか教えてください。変数名は僕のに合わせてくださいお願いします。
詰まったからといって答えを求めるのは非推奨です。
ついた回答に対して疑問点があればコメントで聞くなどして徐々に理解を深めましょう。
- 何をしたいのか
- どこで詰まったのか
- どのようにやってみたのか
これらに注目して質問できるようになればteratailだけでなく、
学校で先生への質問や将来仕事で詰まったときにも役立ちます。
(課題であれば先生に聞いた方が適切な回答をもらえるし、先生からの評価も上がる気がしますが。)
さて、質問に関してですが、2点ほどヒントを。
- ループにiを使用していますが、これはいくつから始まる値なのでしょうか。
- 目の数をカウントしている部分はどういう計算をしているのでしょうか?
あと、下の方に何やらメモがありますが、これも回答の一部ならいろいろごっちゃになってる状態ですね。
初めてこれを見た人がわかるかどうか、そういう目線で見てみましょう。
投稿2018/09/26 11:46
総合スコア5158
0
ベストアンサー
問題点
- cnt, array など配列のインデックスは 0 始まりでしょうか?1始まりでしょうか?
それによって、ループの継続判定が変わってきます。
- cnt を 0 で初期化していない。
- cnt[i] <- cnt[i] + array[i] だとサイコロの目の値を足してしまっています。array[i] が出た目なので、cnt[array[i]] = cnt[array[i]] + 1 とします。
- コメントにあるように、集計が終わったあとに出力します。
擬似コード
インデックスが1始まりと仮定した場合
presudecode
1array[8], cnt[6] 2 3array = [1, 2, 4, 3, 6, 1, 2, 5] 4 5# 「カウント用の配列」を0で初期化する。 6i <= 6 7 cnt[i] ← 0 8 9# サイコロの目に対応する「カウント用の配列」の要素を+1する。 10i <= 8 11 number ← array[i] # サイコロの目 12 cnt[roll] ← cnt[number] + 1 13 14# 表示する。 15i <= 6 16 i, cnt[i] を表示する 17
C言語の例
c
1int main(void){ 2 // サイコロの目 3 int array[] = {1, 3, 4, 6, 2, 1, 5, 3}; 4 5 // カウント用の配列を初期化する。 6 int cnt[6] = {}; 7 8 // カウントする。 9 for (int i = 0; i < 8; i++) { 10 int number = array[i]; // サイコロの目 11 cnt[number - 1] += 1; 12 } 13 14 // 結果を表示する。 15 for (int i = 0; i < 6; i++) { 16 printf("%d:%d\n", i + 1, cnt[i]); 17 } 18}
1:2 2:1 3:2 4:1 5:1 6:1
投稿2018/09/26 11:47
編集2018/09/26 14:17総合スコア21956
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/26 14:11
2018/09/26 14:13 編集
2018/09/26 14:18
2018/09/26 14:40
2018/09/26 14:50 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。