在数组中查找min元素索引

时间:2016-12-15 12:59:30

标签: 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;
}

我得到的答案是数组中最后一个元素的索引,而不是具有最低值的元素。

2 个答案:

答案 0 :(得分:1)

更新index_min时需要正确包装if条件:

  if (main_array[i] < minimum) {
            minimum = main_array[i];
            index_min = i;
  }

答案 1 :(得分:0)

你忘记了一些括号。适当的缩进将有助于看到这一点。目前您的代码如下所示:

DSL.field(
    "cast({0} as CHAR CHARACTER SET utf8) COLLATE utf8_unicode_ci", 
    String.class, 
    MY_TABLE.ZIP
);

但你想要这个:

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
}

同样在C和C ++中,您通常会使用额外的行来获得eac花括号。