【发布时间】:2021-06-15 01:08:11
【问题描述】:
这是我的尝试:
int main ()
{
// example array
int x [] { 5, 3, 5, 7, 1, 6, 12 };
int size = sizeof(x) / sizeof(x[0]);
int min = 0;
int index;
int i;
for ( i=1; i < size; i++)
{
if (x [i]< 2)
{
index = i ;
min = x [i];
}
}
cout << index << " " << min << endl;
return 0;
}
有什么改进建议吗?
是否有更通用的方法来找到最小值(即:不专门使用给定数组的明显最小值,就像我对 x [i] < 2 所做的那样)?
【问题讨论】:
-
std::min_element浮现在脑海中。 -
我认为它没有找到最小的元素。它找到最后一个小于 2 的元素。如果没有,你将得到未定义的行为。
-
如果你想自己实现它
std::numeric_limits<int>::max()是一个很好的初始猜测最小值 -
欢迎来到 Stack Overflow!如果您需要帮助改进工作代码,您应该在CodeReview.SE 上发布此内容。如果您决定这样做,请在此处删除问题。
-
不需要以
INT_MAX开头。从第一个元素开始。
标签: c++ arrays indexing element minimum