我正在尝试编写一个函数,该函数将返回数组的最小值。到目前为止,我有这个,但是它返回的都是0。

我看不到它将如何返回0,因为我正在使用for循环在数组中循环。也许不是像我认为的那样循环遍历数组值。谁能详细说明这段代码的逻辑和谬误?

#include <iostream>

using namespace std;

int newArray[9] = {4,5,9,3,6,2,1,7,8};


int minArray()
{
    int index = 1;
    int minimum;

    for (int i = 0; i < 9; i++)
    {
        if (newArray[i] > newArray[index])
        {
            minimum = newArray[index];
        }
        index++;

    }

    return minimum;
}


int main()
{
    cout << "original array:\n ";
    for (int i = 0; i < 9; i++)
    {
        cout << newArray[i] << ", ";
    }

    cout << "minimum value of array: ";
    cout << minArray();

    return 0;
}

最佳答案

一个好主意可能是使用数组中的元素初始化最小值。
所以:

minimum = newArray[0]


在循环中(假设您不想要答案的伪代码):

if: newArray[pos] < minimum

        minimum = newArray[pos];

关于c++ - 数组的最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14924470/

10-11 05:11