繁体   English   中英

如何解决C ++中的编程问题

[英]How can I solve this median programming problem in C++

  1. 制定从五个唯一数字识别中位数的步骤,并在流程图中将其可视化。
  2. 在从用户获得五个唯一数字后,开发一个显示中位数的应用程序。
  3. 扩展功能,允许输入六个唯一数字并计算中位数。

例:
输入: 5 4 2 1 10
输出: Median = 4

我在Walter Savitch的 C ++问题解决中找到了这个问题,但我无法解决。 谁能向我解释?

尝试提供家庭作业友好的建议:

1) 确保您知道如何获得中位数 您能在脑海中还是在纸上找到答案? 现在,您如何编写程序为您执行此操作? 制作流程图

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

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

3b)使您的程序接受任意数量的数字。 (我在您的帖子或书中未添加此内容,但如果您已经完成2和3,则应该非常容易做到)。

谁能向我解释?

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

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

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

我知道没有人要求使用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";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM