C++数组函数未返回正确的结果
C++ Array function not returning correct result
我正在编写一个函数来返回数组的最大值,但目前它没有返回正确的值。
功能:
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;
每次检查数组中的元素时,如果它大于当前的最大值,则将最大值更新为当前元素。最后返回最大值
相关文章:
- 如何返回一个类的两个对象相加的结果
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- C++Brute Force攻击函数不会返回结果
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 为什么我的程序在 O0 和 O2 的优化级别返回不同的结果
- c++ lambda:柯里和函数:使用按值捕获与按引用捕获返回不同的结果
- C++ 获取函数在常量引用中按值返回的结果
- 如何在一个表达式中生成并返回结果?
- 从返回 std::optional of std::vector 的函数中获取结果到调用方
- 三元运算符在返回语句中给出意外的结果
- 为什么函数 tellg() 没有返回好的结果?
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 有没有办法将 for 循环结果返回到像三元运算符这样的函数中?
- 使用std::tie进行类似golang的错误处理,同时返回结果,是否有缺点?(C++11)
- 检查文本文件中的 0 或 1,并根据结果返回
- 如何使用boost::any_range连接多个boost范围并作为函数w/o的结果返回
- 如何从线程的结果返回Qt对象(Qtfutur)
- C++:当在函数内部创建新对象并将其作为结果返回时,我必须使用新运算符来创建对象