如何调用具有双精度的函数

How to call function having double&

本文关键字:双精度 函数 何调用 调用      更新时间:2023-10-16

我已经通过以下代码读取了参数:

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 value_F = simplex(row,col, A,B, value);

单纯形函数的原型如下:

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

如何调用单纯形函数?怎么走?

代替

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);

int只能转换为double,不能转换为double&

valueint,但simplex想要引用double,而不是int。只需将value的类型更改为double,就可以了。