C++ 如何调用具有双&;

C++ 如何调用具有双&;,c++,double,C++,Double,我通过以下代码阅读了参数: int row,col; double A[maxm][maxn]; double B[maxn]; double N[maxn]; void read_file() { freopen("Dimen.txt","r",stdin); scanf("%d",&row); scanf("%d",&col); freopen("A.txt","r",stdin); for(int i=0;i<row;i+

我通过以下代码阅读了参数:

int row,col;
double A[maxm][maxn];
double B[maxn];
double N[maxn];

void read_file()
{
    freopen("Dimen.txt","r",stdin);

    scanf("%d",&row);
    scanf("%d",&col);

    freopen("A.txt","r",stdin);
    for(int i=0;i<row;i++)
       for(int j=0;j<col;j++)
         scanf("%lf",&A[i][j]);

    freopen("B.txt","r",stdin);
    for(int i=0;i<row;i++)
       scanf("%lf",&A[i][col]);

    freopen("F.txt","r",stdin);
    for(int i=0;i<row;i++)
        scanf("%lf",&B[i]);

    int value;
    int value_F = simplex(row,col, A,B, value);

}
单纯形函数的原型如下所示:

int simplex(int m, int n, double a[maxm][maxn], double b[maxn], double& ret)

如何调用函数simplex?怎么走

是一个
整数
,但是
单纯形
希望引用一个
双精度
,而不是
整数
。只要将
value
的类型更改为
double
,它就会工作。

而不是

int value;
int value_F = simplex(row,col, A,B, value);
使用


int
可以转换为
double
,但不能转换为
double&

更改
int值到<代码>双值“value”是一个int,可能不会自动转换为对double的引用,但这是一个暗中操作。请提供错误。您正在将整数而不是双精度传递给单纯形。强制转换、更改或重载函数@PiotrSkotnicki是对的。@MrPickles Casting不是一个好主意,因为int和double的大小很可能不同。@KellyS.French实际上,编译器可以在这里应用浮点整数转换,但它会生成一个右值,而函数需要一个可修改的左值
int value;
int value_F = simplex(row,col, A,B, value);
double value;
// ^^^ a double not an int
int value_F = simplex(row,col, A,B, value);