我是新来的,所以我很抱歉,如果我的问题是一个愚蠢的,但是,我正在计算两个大数字的分区并将它们存储在一个数组中,如下所示:
int det(double M[25][25], int m)
{
/*returns large numbers*/
}
int main()
{
float y[27];
double A[25][25] = {0}, N = 26, D = -134430487042201894894174208;
y[0] = 0;
y[26] = 1;
for (int i = 0; i < N-1; i++)
{
//Reset A[][] to the original
for (int k = 0; k < N-1; k++)
{
for (int J = 0; J < N-1; J++)
{
A[k][J] = m[k][J];
}
}
//Change values of A[j][i]
for (int j = 0; j < N-1; j++)
{
A[j][i] = d[j+1];
}
y[i+1] = det(A,N-1)/D; //Here y returns only 0, 1, 1, 1, 1, ...
}
}D
那么,我做错了什么? y数组返回0,1,1,1,1,...,它应该不是1
det(A,N-1)= 7958284334509567005163520 D = -134430487042201894894174208
det(A,N-1)/ D = -0.05919999629259109195883585509348322869497780932400145347 ......
它不是1。
谢谢!
答案 0 :(得分:2)
函数det返回一个int。你永远不会从中获得浮点值。