如何在C ++中解决这个中值编程问题

时间:2009-11-24 22:05:07

标签: c++

  1. 制定从五个唯一数字中识别中位数的步骤,并在流程图中对其进行可视化。
  2. 开发一个应用程序,在从用户那里获得五个唯一数字后显示中位数。
  3. 扩展功能,允许输入六个唯一数字并计算中位数。
  4. 例:
    输入:5 4 2 1 10
    输出:Median = 4

    我在Problem Solving with C++ Walter Savitch中找到了这个问题,但我无法解决。任何人都可以向我解释一下吗?

3 个答案:

答案 0 :(得分:9)

尝试提供有关家庭作业的建议:

1)Make sure you know how to get a Median。你可以在头脑中或纸上找出来吗?现在,你如何编写一个程序来为你做这个? Make a flowchart

2)编写程序来执行此操作。用户为您的程序提供5个数字,您的程序将中位数作为答案。

3)使程序更好。偶数个数字会改变方法以获得中位数。更改您的程序,以便它允许6个数字。

3b)让你的程序接受任何数量的数字。 (我添加了这个,不是在你的帖子或你的书中,但如果你已经完成2和3,那么应该非常容易。)

答案 1 :(得分:4)

  

有人可以向我解释一下吗?

  1. “制定步骤”的意思是“解释如何做”。例如,假设您向我解释如何解决问题,我不需要使用计算机(我正在尝试用铅笔和纸做),而且我不知道是什么“中位数”是。

  2. “开发应用程序”是指“编写软件”。该软件需要:a)从用户那里获得五个号码(并且可能确保这些号码是“唯一的”); b)找到“中位数”(使用您之前在步骤1中制定的步骤); c)显示(输出)它找到的中位数。

  3. 当需要偶数输入时,您需要定义“中位数”的含义,并相应地更改您的程序。

答案 2 :(得分:2)

我知道没有人要求使用STL给出答案,但是对于稍后来这里的人来说这可能很有用。

在带有STL的C ++中,有一个名为nth_element的函数,它有三个参数。它会对容器进行排序,以便在正确的位置获得第n个元素。

一个例子:

int numbers[] = { 5, 4, 2, 1, 10 };
std::nth_element(numbers, numbers+2, numbers+5);
std::cout << numbers[2] << "\n";