[英]How can I solve this median programming problem in C++
例:
输入: 5 4 2 1 10
输出: Median = 4
我在Walter Savitch的 C ++问题解决中找到了这个问题,但我无法解决。 谁能向我解释?
尝试提供家庭作业友好的建议:
1) 确保您知道如何获得中位数 。 您能在脑海中还是在纸上找到答案? 现在,您如何编写程序为您执行此操作? 制作流程图 。
2)编写程序来执行此操作。 用户给您的程序5个数字,您的程序给出中位数作为答案。
3)使程序更好。 偶数个数字会更改方法以获得中位数。 更改您的程序,以便它将允许6个数字。
3b)使您的程序接受任意数量的数字。 (我在您的帖子或书中未添加此内容,但如果您已经完成2和3,则应该非常容易做到)。
谁能向我解释?
“制定步骤”的意思是“解释如何做”。 例如,假设您正在向我解释如何解决该问题,不需要使用计算机(我想用铅笔和纸来做),并且不知道该怎么办“中位数”是。
“开发应用程序”是指“编写软件”。 该软件将需要:a)从用户那里获得五个号码(并可能确保号码“唯一”); b)找到“中位数”(使用您之前在步骤1中制定的步骤); c)显示(输出)发现的中位数。
您需要定义输入数为偶数时“中位数”的含义,并相应地更改程序。
我知道没有人要求使用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.