在C ++中识别数组的最小索引位置

时间:2016-02-25 23:51:08

标签: c++ arrays

我是新来的。我搜索了现有的问题以找到这个问题的答案,它确实帮助我取得了进步,但我的代码仍在回归' 0' 0而不是数组中最小值的索引中的实际位置。

任何帮助都将不胜感激,谢谢。

#include<iostream>

using namespace std;

int smallestIndex(int arr[], int size);

int main()
{
    int arr[6] = {500, 29, 36, 4, 587, 624};


    cout << "Index position for smallest element in array: " 
    << smallestIndex(arr, 6) << endl;

    return 0;
}

int smallestIndex(int arr[], int size)
{

    int temp;
    int n = arr[0];

        for (int i = 0; i > size; i++)
        {
            if (arr[i] < n)
                n = arr[i];
                temp = i;

        }

    return temp;

}

1 个答案:

答案 0 :(得分:1)

  • 条件i > size错误。它应该是i < size
  • 不要忘记初始化temp。将其写为int temp = 0;,因为n的初始值是数组的第0个元素。
  • 您忘记使用某个区块,temp的值将会出错。

固定代码:

int smallestIndex(int arr[], int size)
{

    int temp = 0;
    int n = arr[0];

        for (int i = 0; i < size; i++)
        {
            if (arr[i] < n)
            {
                n = arr[i];
                temp = i;
            }

        }

    return temp;

}