このコードは、1 ~ 9 の数字をリストし、各数字の横に、生成された 10,000 の乱数に出現する頻度を表示することを目的としています。
コード:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int counts[10];
int i;
int random;
srand(time(0));
for (i = 0; i < 10; i++)
counts[i] = 0;
for (i = 0; i<= 10000; i++)
{
random = (int)(10.0*rand()/(RAND_MAX+1.0));
counts[random]++;
}
for (i = 0; i<10; i++);
printf("%d occurs %f%%\n", i, i/100.0);
return(0);
}
ただし、プログラムを実行すると、必要な1〜9のリストが表示されますが、その横に1〜9がリストされますが、頻度ではなく10進数です。これは私がそれを実行したときに得られるものです:
1 occurs 0.010000%
2 occurs 0.020000%
3 occurs 0.030000%
4 occurs 0.040000%
5 occurs 0.050000%
6 occurs 0.060000%
7 occurs 0.070000%
8 occurs 0.080000%
9 occurs 0.090000%
各数値の頻度を取得するために何を変更する必要がありますか。また、ターミナルからコードを実行するemacs
と 1 ~ 9 のリストが表示されますが、Eclipse でコードを実行すると、コンソールに 10 発生 0.100000% しか表示されません。これが起こる理由はありますか?