0

所以基本上我正在做的是将一组结构从一个函数传递到另一个函数。它适用于显示功能,但不适用于最大功能:/我到底做错了什么?

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. 事实上,它隐藏了共享相同名称的函数,因此调用表达式无效(您试图将参数传递给 a double)。

于 2012-09-01T23:22:51.803 回答