编写一个程序,在0-99范围内生成10000个随机整数,并从随机数据中生成直方图

时间:2016-06-19 22:28:40

标签: c++ arrays for-loop random histogram

此代码使用C ++。输出应该看起来像这样(假装点是空格):

0-9 ....... 5 ... XXXXX

... 10-19 ... 7 XXXXXXX

20-29 ... 2 ... XX

... 90-99 11..XXXXXXXXXXX

这是我到目前为止所做的:

event.data.fd

由于程序需要10,000个随机整数,因此我的输出看起来不像直方图。有没有人对如何解决这个问题有任何想法?我也无法弄清楚如何将为特定范围生成的随机数添加到输出中。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您需要扩展输出。您的每一行可能有多达1000个X.

  1. 查找所有“桶”的最大值(即,最大值[0]到nums [9])
  2. 将每个桶的值乘以屏幕宽度,例如80。
  3. 将每个桶的数量除以您计算的最大值
  4. 打印很多X.
  5. 这将为您提供直方图,其中您的最长结果到达第80列。

    除非你需要为stdlib.h添加rand(),否则你的程序似乎运行正常,你的阵列方式非常奇怪。为什么它是二维的?

    您也可以执行n = rand() % 10并使用n索引数组。然后省略if语句。这基本上是一回事。

    如果您的问题与直方图的形状有关,请将其添加到解释您所期望的问题中。