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