C++:最大数组值函数工作不正常

C++: Function for Max Array Value working improperly

本文关键字:函数 工作 不正常 数组 C++      更新时间:2023-10-16

我正在尝试编写一个函数来查找数组中的最大值,而无需使用任何内置的 c++ 函数,如排序、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((。

有时它甚至没有遍历整个数组,就好像它只是找到了它认为是最大值的东西,然后立即返回那个值。

此外,如果我调整函数以找到最小值,我会得到类似的结果,几乎是最小值,但不完全是。

任何帮助都非常感谢!

返回在错误的地方

假设数组为 1 2 3

所以最大 = 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;
}