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;i
if(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 ;-)
}