2016-02-25 71 views
0

我是新來的。我搜索了這個問題的答案,它確實幫助我取得了進展,但是我的代碼仍然返回'0'而不是數組中最小值的索引中的實際位置。在C++中確定數組的最小索引位置

任何幫助將不勝感激,謝謝。

#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
  • 條件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; 

} 
+0

哇哦,好的,非常感謝。正在絞盡腦汁,它實際上主要只是錯誤的關係符號。所有非常有幫助,謝謝。 – elpretentio

+0

另外我不知道如果我應該發佈這個作爲一個新的線程..但這個問題的第二部分是編寫一個測試函數的程序。那麼這會爲數組產生隨機數?這位教授有點含糊不清,只是試圖探索其他人的各種投入。 – elpretentio

+0

這個問題是有道理的。寫一些。 – MikeCAT