2012-02-27 42 views
0

我目前正試圖編寫一個程序,字母串。我有一個錯誤。這是minLocation不需要2個參數。我對編程相當陌生,任何人都可以給我提示,爲什麼我的代碼的這部分是錯誤的?錯誤代碼與排序程序

int minLocation(string list[], int first, int last) 
{ 
    int mIndex=first; 
    int loc = 0; 

    for (loc = first+1; loc <= last; loc++) 
     if (list[loc] < list [mIndex]) 
      mIndex = loc; 
    return mIndex; 

void Sort(string slist[],int length) 
{ 
    int mIndex; 

     for (int loc = 0; loc < length-1; loc++) 
     { 
      mIndex = minLocation (loc,length-1); 
      swap (loc, minIndex); 
     } 
} 
+1

這看起來像Java - 你可以用語言標記,並告訴我們'minLocation'是什麼?你自己寫的方法,還是圖書館的一部分? 無論哪種方式,錯誤是說你不正確地調用'minLocation' - 檢查函數簽名如何正確調用它。 – 2012-02-27 08:50:26

回答

1

沒有看到的minLocation的定義,我們不能告訴。但是可以肯定的是,它並不需要兩個參數 - 編譯器不會爲了它的樂趣而騙你,你通常可以假設他們說的是真的:-)

你需要查找定義,喜歡的東西:

int minLocation (int loc) { ... 

,並找出如何是實際上意味着調用它。鑑於它看起來像試圖找出兩個索引中的哪一個具有較低的值,可能需要更多的比兩個參數。

而且,最重要的是,您需要決定是否需要名爲mIndexminIndex的變量。大多數編譯器都不夠聰明,無法爲你解決這個問題。

根據您的編輯說muinFunction被定義爲:

int minLocation (string list[], int first, int last) { ... 

似乎顯而易見,它也需要字符串數組以及這兩項指標。您將需要調用更改爲:

mIndex = minLocation (slist, loc, length-1); 

並留意在swap電話也是如此。它可能可能具有類似的要求,基於編碼風格。

+0

我知道,改變它,因爲minindex和minlocation模糊在深夜 – 2012-02-27 09:02:57

+0

但修正後,錯誤仍然存​​在。 – 2012-02-27 09:04:49

+0

@OurFamilyPage,您正在調用函數'minLocation()',它需要* two *參數和* two *,您錯過了傳遞字符串數組的內容。你有解決這個問題嗎? – Nim 2012-02-27 09:08:02