首页 > 解决方案 > 如何在输入数字时找到高于平均值的数字数量?

问题描述

这个问题实际上非常棘手。我们的老师希望我们编写一个程序(用 C 语言),从用户那里获取未知数量的数字(直到用户输入 -1),并在输入数字时计算高于平均值的数字数量。使这项任务变得困难的是我们不允许使用数组这一事实。我试图计算平均值的变化率,并得出一个关于当用户输入某个“大”数字时我们对不再高于平均值的数字数量的猜测的结论,但我没有想到. 我只是不知道如何在没有实际将数字保存在某处并在输入最终数字后检查它们的情况下如何编程这个东西。我什至不知道这是否可能。你有什么建议吗?

标签: caverage

解决方案


如果不保持与输入数量成比例的信息量,这是不可能的,因此本质上需要数组。

证明:考虑任何n -1 个输入的序列,然后是最终输入x。为了说明,假设允许的输入集是有理数。通过选择x,我们可以使平均值成为任何有理数。(如果前n -1 个输入的总和是s并且我们希望平均值是a,那么我们选择x = an -<em>s。)因此,我们可以选择一个略低于 1的x并且略高于 1,因此程序必须“知道”1 是否在先前的输入中,以便将其包含在计数中。同样,我们可以选择一个x这比任何其他数字略低或略高,程序必须做出相应的响应。因此,程序能够为所有可能的输入产生正确计数的唯一方法是它是否具有所有先前输入的记录。


推荐阅读