2012-02-27 3 views
0

現在、文字列をアルファベット順に並べ替えるプログラムを作成しようとしています。私は1つのエラーがあります。 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'を不適切に呼び出していると言っています - 関数シグネチャが正しく呼び出される方法をチェックしてください。 –

答えて

1

minLocationの定義を見なければ、私たちは言うことができません。しかし、それは2つの議論を取っていない安全な賭けです - コンパイラはあなたにそれの楽しみのためだけに横たわっていません、彼らは彼らが言っていることが本当であると仮定することができます:-)

あなたはする必要があります、定義を見つけるようなもの:

int minLocation (int loc) { ... 

、あなたはそれを呼び出すためのもの実際している方法を見つけ出します。 2つのインデックスのどちらがより低い値であるかを調べようとしているように見える場合、それはより多く、より2つの引数を必要とする可能性があります。

さらに、mIndexまたはminIndexという変数を使用するかどうかを決定する必要があります。ほとんどのコンパイラはあなたのためにそれを理解するのに十分スマートではありません。 muinFunctionは次のように定義されていることを、編集内容に基づいて

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

また、文字列の配列と同様に2つの指標が必要であることが明らかと思われます。

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

、同様swapコールに目を保つ:あなたはへの呼び出しを変更する必要があります。 は、コーディングスタイルに基づいて同様の要件を持ちます。

+0

minindexとminlocationが夜遅くにこれをぼやけていたので変更しました –

+0

しかし、エラーがまだ残っていることを修正した後。 –

+0

@OurFamilyPage、あなたは* 2 *で* 3つの*引数を必要とする関数minLocation()を呼び出していますが、あなたは文字列の配列を渡しています。これを修正しましたか? – Nim