如何编写一个函数,该函数返回数组中2个值之间的最大值

时间:2017-03-01 02:58:55

标签: c++ arrays loops variable-assignment

所以我试图为一个赋值函数编写一个函数,该函数返回数组中2个设定点之间的最大值。用户输入2个数组值,例如数组中的值3和5,并将给出这两个值之间的最大值。

该函数应该包含数组本身和2个值。

这个功能的背景是你试图找到两个山顶之间的最高点。

int getHighestPointBetween(const int heights[]. int startMile, int endMile)
{
    return mile_marker
}

我知道我将不得不使用for循环,但我只是坚持实现它并让它工作。

另外,我是C ++的超级新手,所以如果我错误地使用了术语,或者我没有走上正确的道路,我很抱歉,但我很遗憾。

2 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用std::max_element

#include <algorithm>
int getHighestPointBetween(const int heights[], int startMile, int endMile)
{
    return *(std::max_element(heights + startMile, heights + endMile + 1));
}

答案 1 :(得分:0)

你可以像@mpiatek那样使用std::max_element说。我将向您展示如何使用for循环手动执行此操作。

int getHighestPointBetween(const int heights[], int startMile, int endMile){
    int largest = 0;
    for(int i = startMile; i<= endMile; ++i){
        if(heights[startMile] > largest) largest = heights[startMile];
    }
    return largest;

for循环的作用是从startMile索引开始,并迭代到endMile并包括largest。对于每个元素,它会与largest中存储的值进行比较,如果它更大,则会将Error: [$compile:nonassign] Expression 'undefined' in attribute 'selectedCircles' used with directive 'addCircleForm' is non-assignable! http://errors.angularjs.org/1.5.11/$compile/nonassign?p0=undefined&p1=selectedCircles&p2=addCampaignForm at angular.js:68 at parentSet (angular.js:10216) at parentValueWatch (angular.js:10229) at regularInterceptedExpression (angular.js:16355) at Scope.$digest (angular.js:17828) at Scope.$apply (angular.js:18102) at HTMLElement.s (angular-material.min.js:11) at defaultHandlerWrapper (angular.js:3546) at HTMLElement.eventHandler (angular.js:3534) 分配给该元素,如果不是,则会向前进行。