0

昇順で並べ替えられたリスト内の要素の出現回数を見つけるのに助けが必要です。

次のコードを設定しましたが、コードの最後の行の「予期されるパラメーター宣言子」の最後でエラーが発生します。また、関数 binarySearch の以前のプロトタイプがないと言っています。これはどういう意味ですか?私はそれを調べて、最初に int binarySearch を宣言しましたが、運がありませんでした。このコードが実行されていない理由が本当にわかりません。過去 2 時間かけてデバッグしました。

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;  


//sort then search


int binarySearch(int arr[], int value, int left, int right) {
    while (left <= right) {
        int middle = (left + right) / 2;

        if (arr[middle] == value)
            return middle;
        else if (arr[middle] > value)
            right = middle - 1;
        else
            left = middle + 1;
    }

    return -1;

}

int main()  
{  
    int a[] = {12,3,4,4,4,5,6,7};

    int num;  

    num = sizeof(a)/sizeof(int);

    for(int i=0; i<num; i++)  
        cout<<a[i]<<" ";  
    cout<<endl;

    int value;

    cout<<"Enter a value you want to find in the array."<<endl;
    cin>>value;

    cout<<"The element is at "<<int binarySearch(int a[], value, 0, int num);
}  
4

1 に答える 1

1

それはあなたが関数を呼び出す方法ではありません。関数定義行をコピーして、1 つまたは 2 つの引数を置き換えることはできません。その行を次のように置き換えます。

cout<<"The element is at "<<binarySearch(a, value, 0, num);

注: これは、アルゴリズム自体の問題には対処しません。呼び出しの問題だけです。

于 2012-05-27T00:53:44.560 に答える