-3

このコードに問題があります。関数を呼び出すとき。コンパイラはこのエラーを表示します:

「関数呼び出しの引数が少なすぎます」 .......................................................... ...................

bool check_matrix(int x, int y){
    if (x<ROWS || y<COLUMNS)
        return true;
    return false;

    }

bool compute_duplicate(int x, int y, int array[], int array_length){
    for (int i=0; i< array_length; i++)
    {
        if(array[i]==compute_address(x,y))
            return false;
    }

    return true;
    }
////////////////////////////////////

for (int i=0; i<array_length; i++){
    if ((check_matrix(x,(y+1))==true) && compute_duplicate((x,(y+1), array, array_length)==false)) {
        array[i]= compute_address(x,(y+1));
        y++;
        d++;
        i++;
    }

    if ((check_matrix((x+1),y)==true) && compute_duplicate((x+1),y, array, array_length)==false)) {
        array[i]=compute_address((x+1),y);
        x++;
        d++;
        i++;
    }
    array_length=d;
}
4

5 に答える 5

1

あなたの問題はここにあります:

compute_duplicate((x,(y+1), array, array_length)==false))

つまり、有効な式の結果であるtype の1 つの引数で呼び出そうとしてcompute_duplicateいます。コンマは C/C++ の演算子であるため、上記の式の有効な結果は です。bool (x,(y+1), array, array_length)==falsearray_length==false

おそらく意味することは次のとおりです。

compute_duplicate(x,(y+1), array, array_length)==false
于 2013-04-09T07:10:59.860 に答える
1

compute_duplicate((x,(y+1), array, array_length)==false))は式 を呼び出しcompute_duplicateています。これは、 が である場合にのみ(x,(y+1), array, array_length)==false)、単一のブール値です。これはあなたが望むものではありません。true(x,(y+1), array, array_length)false

于 2013-04-09T07:11:03.597 に答える
1

ここに追加の中括弧のペア:

compute_duplicate((x,(y+1), array, array_length)==false)

単一の bool を引数として渡すとコンパイラに認識させます。それらを緩めると、エラーが修正されます。

于 2013-04-09T07:11:12.323 に答える
1

compute_duplicate((x,(y+1), array, array_length)==false)compute_duplicateの結果である 1 つの引数で呼び出してい(x,(y+1), array, array_length)==falseます。

ということ(compute_duplicate(x,(y+1), array, array_length)==false)ですか?

( s の配置がわずかに異なるだけで()、C++ の非常に異なる部分です。

于 2013-04-09T07:11:21.920 に答える