gpt4 book ai didi

无法从 'double' 转换为 'double (*)'

转载 作者:行者123 更新时间:2023-11-30 18:38:28 29 4
gpt4 key购买 nike

我正在尝试编写一个代码来查找给定矩阵的逆矩阵。我不断收到同样的错误:

错误 5 错误 C2440:“function”:无法从“double”转换为“double (*)”

这是我的代码,不确定它是否有效:

int swap_rows(double mat[SIZE][SIZE], int row1, int row2)
{
int i, j, temp;
for (j = 0; j < SIZE; i++)
{
temp = mat[row1][j];
mat[row1][j] = mat[row2][j];
mat[row2][j] = temp;
}
return 0;
}

int subtract_rows(double mat[SIZE][SIZE], int row1, int row2, double mul)
{
int i;
for (i = 0; i < SIZE; i++)
{
mat[row1][i] = mat[row1][i] - mul*mat[row2][i];
}
return 0;
}

int inverse_matrix(double mat[][SIZE], double inv[][SIZE], int size)
{
int i, j, k, w;
double c, b;
for (i,j = 0; i,j < SIZE; i++)
{
if (mat[i][j] = 0)//cheking to see left is not zero
{
for (k = i + 1; k < SIZE; k++)//if zero swap rows with one that not zero
{
if (mat[k][j] != 0)
{
swap_rows(mat, i, k);//swap
swap_rows(inv, i, k);
}
else
return 0;//didnt find not zero return and exit
}
}
c = mat[i][j];// c is the left number
for (k = 0; k < SIZE; k++)
{
mat[i][k] /= c;//divide everyone by c, now i have one
inv[i][k] /= c;
}
for (k = 0; k < SIZE; k++)
{
b = mat[k][j];
if (k != i)
{
if (mat[k][j] > 0)
{
subtract_rows(mat[SIZE][SIZE], k, i, b);// ***error points to this line***
subtract_rows(inv[SIZE][SIZE], k, i, b);
}
else
{
subtract_rows(mat[SIZE][SIZE], k, i, -b);
subtract_rows(inv[SIZE][SIZE], k, i, -b);
}

}
}
}
return 0;
}

有人能看出问题出在哪里吗?

最佳答案

mat[SIZE][SIZE] 使用下标运算符对 mat 进行索引,产生 double .
不过,double mat[][SIZE] 是一个double*[SIZE]
明显不匹配。

要将数组(无论如何都会转换为指针)传递给函数,只需使用 mat:

subtract_rows(mat, k, i, b);

对其他 subtract_rows 调用执行类似的操作。

关于无法从 'double' 转换为 'double (*)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com