C++数组函数未返回正确的结果

C++ Array function not returning correct result

本文关键字:结果 返回 数组 函数 C++      更新时间:2023-10-16

我正在编写一个函数来返回数组的最大值,但目前它没有返回正确的值。

功能:

int findMax(int maximum[ARRAY_SIZE])
{   
    int largest=maximum[0];
     for(int i=0;i<ARRAY_SIZE;i++)
    {
        if (maximum[i]>largest)
        {
          return largest=maximum[i];
        }
    }
}

主要功能部分:

cout<<"Maximum number: "<< findMax(numbers) <<endl;

return largest=maximum[i];此行将通过返回找到的第一个元素使循环提前返回。

可能您只想在循环后执行largest = maximum[i];,然后执行return largest;

但是您使用的是C++,为什么需要推出自己的findMax函数:

int array[] = {1,100,65,21,12,5};
int* max = ::max_element(begin(array), end(array));

return(有点)立即结束函数调用。您想要的是更新largest,并在findMax结束时更新return largest

您可能还想阅读完整的C++课程,并以更合乎逻辑的方式命名您的参数。

int findMax(int data[], std::size_t size)
{   
    int largest=data[0];
    for(std::size_t i=0 ; i < size ; ++i)
    {
        if (data[i] > largest)
        {
            largest = data[i];
        }
    }
    return largest;
}
for(int i=0;i<ARRAY_SIZE;i++)
{
    if (maximum[i]>largest)
    {
          return largest=maximum[i];
    }
}

当发现较大的值时,循环语句将停止,它可能不会检查数组中的所有元素。应该修改如下:

for(int i=0;i<ARRAY_SIZE;i++)
    {
        if (maximum[i]>largest)
        {
          largest=maximum[i];
        }
    }
return largest;

每次检查数组中的元素时,如果它大于当前的最大值,则将最大值更新为当前元素。最后返回最大值

相关文章: