プロが教えるわが家の防犯対策術!

サイコロを1000回振って1~6の出る目の確率を表示したいのですが、ここからの続き分かりません。
教えてください。
#include<stdio.h>
#include<stdlib.h>

int main()
{
int sai, i;

for(i = 1; i=< 1000; i++)
{
sai = rand() % 6 + 1;
printf("出た目は = %d\n",sai);
}

return 0;
}
ここから今度は「1~6の数字がでた確率は0.…です。」と表示するプログラムを追加するにはどうすればいいのですか?

A 回答 (4件)

#include<stdio.h>


#include<stdlib.h>

int main()
{
int sai, i;
//目毎にカウント数を入れる配列を宣言する

for(i = 1; i=< 1000; i++)
{
sai = rand() % 6 + 1;
//出た目毎にカウント(+1)する
printf("出た目は = %d\n",sai);
}

/*
for文で1から6を回す{
出た目毎のカウント数/1000を出力する
}
*/

return 0;
}
    • good
    • 0
この回答へのお礼

できました。ありがとうございます。

お礼日時:2005/08/02 17:45

int me[6];


にしておいて、

me[sai-1]++;
をforに入れて、

break後に、
forでiくらいを1~6まで回して、
printf("%dがでた確率は、%fです\n",i+1, (float)me[i]/1000);
くらいでどうでしょう?

文法等は見直して下さいね^^;
    • good
    • 0
この回答へのお礼

できました。すみません初歩的な質問をして。
どうもありがとうございました。

お礼日時:2005/08/02 17:47

私なりにとりあえず書いてみます。



#include<stdio.h>
#include<stdlib.h>

int main()
{
int sai, i;
int kaisu[7]; //追加 1~6まで出た回数
double kakuritu[7];
for(i=0;i<7;i++) kaisu[i] = 0; //配列の初期化

for(i = 1; i=< 1000; i++)
{
sai = rand() % 6 + 1;
printf("出た目は = %d\n",sai);
kaisu[sai]++;
}

for(i=1;i<7;i++){
kakuritu[i] = kaisu[i] / 1000;
printf("%dが出た確率は%f",i,kakuritu[i]);
}

return 0;
}

こんな感じだと思います。何か間違えがあったらすみません。
kaisuに1~6が出た回数を記憶し、kaisu[1] / 1000で1が出た確率を求められます。
    • good
    • 0
この回答へのお礼

実行できました。
ありがとうございました。

お礼日時:2005/08/02 17:47

すみません。

キャストを忘れてました。
kakuritu[i] = (float)kaisu[i] / 1000.0;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています