サイコロのプログラミングについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: サイコロのプログラミングについて

Re: サイコロのプログラミングについて

#5

by みけCAT » 3年前

参照魚 さんが書きました:
3年前
合計値を配列の添字にしてカウントすれば良いかと思います。

コード:

a[j] = sum;
↓
a[sum]++;
配列aの初期化も忘れずするようにしましょう。

Re: サイコロのプログラミングについて

#4

by 参照魚 » 3年前

合計値を配列の添字にしてカウントすれば良いかと思います。

コード:

a[j] = sum;
↓
a[sum]++;

コード:

printf("合計 回数\n");
for (j = 0; j < 100; j++)
      printf("%d %d\n", j,a[j]);

Re: サイコロのプログラミングについて

#3

by みけCAT » 3年前

(2) (3) については、

-----------

「合計」と「回数」の組の構造体を定義する

この構造体61個の配列を用意する
配列を、合計→その要素の添字、回数→0に初期化する

1万回の記録それぞれについて、配列のうち、記録した値を添字とする要素の回数を1増やす

(2)
この時点で、配列のうち添字が30である要素の「回数」が、合計値が30であった回数

配列を「回数」の降順でソートする

(3)
一番多かった合計値は、配列の最初の要素の「合計」および、それと「回数」が同じ要素の「合計」
それが何回あったかは、配列の最初の要素の「回数」

-----------

という手順でできるはずです。

Re: サイコロのプログラミングについて

#2

by box » 3年前

コード:

        int a[100];
100個しかなくていいんですか?10000じゃないんですか?

コード:

        for (j = 0; i < 10000; j++)
i < 10000
でいいんですか?
j < 10000
じゃないんですか?

サイコロのプログラミングについて

#1

by 死にそう » 3年前

①サイコロを10回振った合計を1万回記録する
②その1万回記録した中で、合計値が30であった回数を求める
③さらに、1万回記録した中で、一番多かった合計値とそれが何回あったかを求める

というプログラムを書きたいです

①はサイコロを10回振った合計を求めるプログラムは書けたのですが、1万回記録するプログラミングを書くとkilledというメッセージがでました。
一応そのプログラムを載せておきます。

コード:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
        int i, j, sum;
        int a[100];
        srand((unsigned int)time(NULL));
       
        for (j = 0; i < 10000; j++)
        {
        sum = 0;
        for (i = 0; i < 10; i++)
        {
            sum = sum + rand() % 6 + 1;
        }
           a[j] = sum;
        }
           for (j = 0; j < 10000; j++)
               printf("%d\n", a[j]);
 
      return 0;
}
どう書けば1万回記録することができるのかということと、②と③の書き方を教えていただきたいです。よろしくお願いします。

ページトップ