我正在尝试编写一个函数来查找数组中的最小值,但我无法弄清楚我所犯的错误。有人可以看看吗?感谢!!!
void smallest(int array[],int size)
{
int smallest=array[0];
for (int i=1;i<size-1;i++)
{
if (array[i]<smallest)
smallest=array[i];
}
cout<<smallest<<'\n';
}
代码没有执行因为有断点,我看不出问题出在哪里。
答案 0 :(得分:0)
您可以在此找到更有效的解决方案:
Finding smallest value in an array most efficiently
代码段:
int smallest = array[0];
for (int i = 0; i < array_length; i++) {
if (array[i] < smallest) {
smallest = array[i];
}
}
答案 1 :(得分:0)
您的循环不会转到数组的最后一个元素。你应该删除条件的减1。并且不要犹豫,测试收到的参数的价值:
void smallest(int array[], int size)
{
if (size <= 0 || !array)
return;
int smallest = array[0];
for (int i = 1; i < size ; i++)
if (array[i] < smallest)
smallest = array[i];
cout << smallest << '\n';
}