[英]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.