C ++:Max Array Value的功能不正常

时间:2017-06-22 06:41:40

标签: c++ arrays max

我正在尝试编写一个函数来查找数组中的最大值,而不使用任何c ++内置的函数,如sort,max_element等。

我在下面开发了这个代码,它最终确定了“最大值”,但它并不总是正确的:

double dispMax(int farray[], int maxValue)
{

    int max = farray[0];

    for (int x = 0; x < maxValue; x++) //maxValue is size of farray
    {

        if (farray[x] > max)
        {

            max = farray[x];
            return max;

        }

    }

}

farray []未排序,仅由数据类型列表组成(例如(123.25,234.3,345.12))。

有时似乎它甚至没有在整个数组中迭代,几乎就像它只是找到它认为是最大值的东西,然后立即返回那个。

另外,如果我调整函数来找到最小值,我会得到类似于ALMOST最小值的结果,但不完全。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

返回错误的地方

将阵列设为1 2 3

所以max = 1;

然后当它转到第二个值

farray [1] = 2它大于1所以返回(?)

将返回放在for循环之外,让循环遍历所有数组

double dispMax(int farray[], int maxValue)
{
    // need to be double
    double max = farray[0];
    for (int x = 0; x < maxValue; x++) //maxValue is size of farray
    {
        if (farray[x] > max)
        {
            max = farray[x];    
        }
    }
    return max;
}