我正在尝试编写一个函数来查找数组中的最大值,而不使用任何c ++内置的函数,如sort,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))。
有时似乎它甚至没有在整个数组中迭代,几乎就像它只是找到它认为是最大值的东西,然后立即返回那个。
另外,如果我调整函数来找到最小值,我会得到类似于ALMOST最小值的结果,但不完全。
非常感谢任何帮助!
答案 0 :(得分:1)
将阵列设为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;
}