查找数组中的最小值
Posted
技术标签:
【中文标题】查找数组中的最小值【英文标题】:Finding smallest value in an array 【发布时间】:2016-10-28 09:33:47 【问题描述】:我正在尝试编写一个函数来,但我无法弄清楚我所犯的错误。有人可以看看吗?谢谢!!!
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';
代码没有执行,因为有断点,我看不出问题出在哪里。
【问题讨论】:
使用调试器定位代码中的“断点”。检查所有涉及的变量的值,并确保它们是有效的。 请尝试创建一个Minimal, Complete, and Verifiable Example 并向我们展示,向我们展示您如何使用和调用此函数以及使用什么值。< size-1
当然应该是< size
你有堆栈跟踪
另外,如果数组大小为零,你的程序会崩溃
@SvenNilsson 我只知道 nullptr 但我没有听说过零大小的数组,这是新功能吗?
【参考方案1】:
您可以在此处找到更有效的解决方案:Finding smallest value in an array most efficiently。
代码sn-p:
int smallest = array[0];
for (int i = 0; i < array_length; i++)
if (array[i] < smallest)
smallest = array[i];
【讨论】:
与提出的问题没有什么不同【参考方案2】:您的循环不会到达数组的最后一个元素。您应该删除条件的负 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';
【讨论】:
以上是关于查找数组中的最小值的主要内容,如果未能解决你的问题,请参考以下文章