求大神帮帮忙,暑假作业不会
我在设计程序的过程中遇到一个问题,我想将外函数生成的二维数组调用到主函数中让它参与下一个函数怎么办
下面这个函数是我通过指定元素位置生成代数余子阵,我想将这个生成矩阵组应用到下一个函数中。
void chan(float mat[50][50], int n, int k, int l)
{
float c[50], b[50][50];
int i, j, x = 0, y = 0;
for (i = 0;i < n;i++)
{
if (i != k - 1)
{
for (j = 0;j < n;j++)
{
if (j != l - 1)
{
c[x] = mat[i][j];
x++;
}
else continue;
}
}
else continue;
}
for (i = 0;i < n - 1;i++)
for (j = 0;j < n - 1;j++)
{
b[i][j] = c[y];
y++;
}
for (i = 0;i < n - 1;i++)
{
for (j = 0;j < n - 1;j++)
cout << b[i][j] << " ";
cout << endl;
}
}
下面这个函数是计算矩阵的行列式。
float cal(float temp[50][50], int n)
{
int x, i, j;
for (x = 1;x < n;x++)
{
for (i = x;i < n;i++)
{
float k;
k = temp[i][x - 1] / temp[x - 1][x - 1];
for (j = x - 1;j < n;j++)
temp[i][j] = temp[i][j] - temp[x - 1][j] * k;
}
}
float z = temp[0][0];
for (i = 1;i < n;i++)
z = z * temp[i][i];
return z;
}
主函数是输出伴随矩阵。
int main()
{
float a[50][50], b[50][50], d[50][50];
int n;
cout << "请输入行列数n:";
cin >> n;
cout << "请输入矩阵A" << endl;
int i, j, x = 0, y = 0;
for (i = 0;i < n;i++)
for (j = 0;j < n;j++)
cin >> a[i][j];
cout << "输出结果为" << endl;
for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
chan(a, n, i + 1, j + 1);
d[i][j] = cal(b, n - 1);
}
for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
cout << d[i][j] << " ";
cout << endl;
}
}
下面这步实现不了,请大佬帮忙改进
chan(a, n, i + 1, j + 1);
d[i][j] = cal(b, n - 1);