C++;:最大数组值函数工作不正常 我试图编写一个函数来寻找数组中的最大值,而不使用任何C++内置函数,如排序、Max元素等。
我在下面开发了这段代码,它最终确定了“最大值”,但并不总是正确的:C++;:最大数组值函数工作不正常 我试图编写一个函数来寻找数组中的最大值,而不使用任何C++内置函数,如排序、Max元素等。,c++,arrays,max,C++,Arrays,Max,我在下面开发了这段代码,它最终确定了“最大值”,但并不总是正确的: 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 = farra
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;
}
}
}
double dispMax(int-farray[],int-maxValue)
{
int max=farray[0];
对于(int x=0;x最大值)
{
最大值=远射线[x];
返回最大值;
}
}
}
farray[]是未排序的,仅由一系列数据类型组成(例如(123.25234.3345.12))
有时它看起来甚至没有在整个数组中迭代,几乎就像它只是找到了它认为是最大值的东西,然后立即返回该值
另外,如果我调整函数以找到一个最小值,我会得到一个类似的结果,即几乎是最小值,但不完全是最小值
非常感谢您的帮助 报税表放错地方了
Supose数组是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;
}
double dispMax(int-farray[],int-maxValue)
{
//需要加倍
双最大值=法拉利[0];
对于(int x=0;x最大值)
{
最大值=远射线[x];
}
}
返回最大值;
}
maxValue是法拉利的大小
好名字!无论如何,您可以通过调试器轻松地解决这个问题。将return max
从循环中排除。仅此而已。解决此类问题的正确工具是调试器。在询问堆栈溢出之前,应该逐行检查代码。如需更多帮助,请阅读。至少,您应该在问题中包含一个重现问题的示例,以及在调试器中进行的观察。在返回最大值之前,您应该遍历整个数组。123.25不是int
。