此代码用于列出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但是以十进制而不是频率。这是我运行时得到的结果:
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%。这有什么原因吗?
答案 0 :(得分:3)
看起来你正确地存储了每个数字的频率,你只是没有显示它们。您的输出根本没有引用counts
数组。
在这一行:
printf("%d occurs %f%%\n", i, i/100.0);
i/100.0
应为counts[i]/10000
。