所以我试图为一个赋值函数编写一个函数,该函数返回数组中2个设定点之间的最大值。用户输入2个数组值,例如数组中的值3和5,并将给出这两个值之间的最大值。
该函数应该包含数组本身和2个值。
这个功能的背景是你试图找到两个山顶之间的最高点。
int getHighestPointBetween(const int heights[]. int startMile, int endMile)
{
return mile_marker
}
我知道我将不得不使用for循环,但我只是坚持实现它并让它工作。
另外,我是C ++的超级新手,所以如果我错误地使用了术语,或者我没有走上正确的道路,我很抱歉,但我很遗憾。
答案 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)
分配给该元素,如果不是,则会向前进行。