C++ 在数组中查找最小元素索引
我可以在数组中找到最小值索引。我找到了很多关于它的指南,我也在做同样的事情,但是我的答案不正确C++ 在数组中查找最小元素索引,c++,arrays,indexing,C++,Arrays,Indexing,我可以在数组中找到最小值索引。我找到了很多关于它的指南,我也在做同样的事情,但是我的答案不正确 double minimum = main_array[0]; int index_min; for (int i=1; i<ARRAY_SIZE; i++) { if (main_array[i] < minimum) minimum = main_array[i]; index_min = i;
double minimum = main_array[0];
int index_min;
for (int i=1; i<ARRAY_SIZE; i++) {
if (main_array[i] < minimum)
minimum = main_array[i];
index_min = i;
}
double minimum=main_数组[0];
int索引_min;
对于(int i=1;i您需要在更新index_min时正确包装if条件:
if (main_array[i] < minimum) {
minimum = main_array[i];
index_min = i;
}
if(主数组[i]<最小值){
最小值=主_数组[i];
指数_min=i;
}
您忘记了一些括号。正确的缩进将有助于看到这一点。当前您的代码如下所示:
for (int i=1; i<ARRAY_SIZE; i++)
{
if (main_array[i] < minimum)
minimum = main_array[i]; // sets the minimum correctly
index_min = i; // updates the index every run, resulting in index_min == ARRAY_SIZE -1
}
for(int i=1;iif(main_array[i]
=>if(main_array[i]
使用?它返回一个迭代器(对于数组,它将是一个指针)但是很容易从中获取索引。只需在if
语句中使用括号,以包含index\u min=i;
@Satnam使用调试器来逐步检查代码就很有帮助了。这样你就可以很容易地找到类似的错误。同意。重新定义了答案语言。好的,谢谢,我有一个关于这方面的问题。为什么我可以找到最小值用那个语法错误更正了吗?
for (int i=1; i<ARRAY_SIZE; i++)
{
if (main_array[i] < minimum)
{
minimum = main_array[i];
index_min = i; // only if a new minimum is found update the index_min variable
} // note the extra brackets ;-)
}