0

つまり、基本的に私がやっていることは、ある関数から別の関数に構造体の配列を渡すことです。show 関数では機能しますが、max 関数では機能しません:/正確に何が間違っていますか?

void show( const ABC & x ){
    cout<<"{"<<x.n<<",'"<<x.c<<"',{"<<x.a[0]<<","<<x.a[1]<<","<<x.a[2]<<"}}";
}

void show( const ABC arr[], unsigned elements ){
    for(unsigned i=0; i<elements; i++)
        show(arr[i]);
}

以下は機能しません

double max( const ABC & x ){
    double max=x.a[2];
    if(x.a[1]>max)
        max=x.a[1];
    if(x.a[0]>max)
        max=x.a[0];
    return max;
}

double max( const ABC arr[], unsigned elements ){
    double max=arr[2].a[3];
    for(unsigned i=0; i<elements; i++)
        if(max<max(arr[i])){
            max=max(arr[i]);
        }
    return max;
}
4

1 に答える 1

3

double変数の名前を 以外の名前に変更しますmax。現状では、同じ名前を共有する関数を隠しているため、呼び出し式が無効である理由 (に引数を渡そうとしていますdouble)。

于 2012-09-01T23:22:51.803 に答える