【发布时间】:2012-10-10 10:45:57
【问题描述】:
此代码旨在列出从 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%。发生这种情况有什么原因吗?
【问题讨论】:
-
再次查看您的代码,尤其是您正在打印的内容。如果这不起作用,请调试它。如果这不起作用,我放弃。
-
"为什么我的 C 代码不能正常工作?" - 因为你没有缩进它。