gpt4 book ai didi

c++ - 程序返回不正确的值 (C++)

转载 作者:行者123 更新时间:2023-11-30 01:22:42 27 4
gpt4 key购买 nike

我写了一个简单的代码来处理二维数组,该代码的目的是使用矩阵方法求解两个线性联立方程(在方阵中表示系数,计算逆,乘以逆通过每个方程的输出来找到两个变量的结果)。代码编译时没有警告,所以我不知道问题出在哪里。

#include <iostream>
using namespace std;

double determinant(double parameterMatrix[2][2])
{
return parameterMatrix[1][1] * parameterMatrix[2][2] - parameterMatrix[1][2] * parameterMatrix[2][1];
}

void invertMatrix (double parameterMatrix[2][2], double inverseMatrix[2][2])
{
double parameterDeterminant = determinant(parameterMatrix);

inverseMatrix[1][1] = parameterMatrix[2][2] / parameterDeterminant;
inverseMatrix[1][2] = - parameterMatrix[1][2] / parameterDeterminant;
inverseMatrix[2][1] = - parameterMatrix[2][1] / parameterDeterminant;
inverseMatrix[2][2] = parameterMatrix[1][1] / parameterDeterminant;
}

int main()
{
double resultVector[2];
double coefficientMatrix[2][2];

cout << "Enter equations of lines, which are of the form ax+by=c" << endl;

cout << "a = "; cin >> coefficientMatrix[1][1];
cout << "b = "; cin >> coefficientMatrix[1][2];
cout << "c = "; cin >> resultVector[1];

cout << "a = "; cin >> coefficientMatrix[2][1];
cout << "b = "; cin >> coefficientMatrix[2][2];
cout << "c = "; cin >> resultVector[2]; cout << endl << endl;

double inverseCoefficientMatrix[2][2];
invertMatrix(coefficientMatrix, inverseCoefficientMatrix);

double x = inverseCoefficientMatrix[1][1] * resultVector[1] + inverseCoefficientMatrix[1][2] * resultVector[2];
double y = inverseCoefficientMatrix[2][1] * resultVector[1] + inverseCoefficientMatrix[2][1] * resultVector[2];

cout << "The lines intersect at the point (" << x << ", " << y << ")" << endl;
return 0;
}

如果你用一个简单的例子来尝试,例如,x + 2y = 3 和 3x + 2y = 1,它应该返回 x = -1 和 y = 2,它返回的值是 -0.5 和 0.1875。我一直在代码中插入行以打印出每个阶段所有内容的值,我得出的结论是行列式函数正在改变 resultVector 的值,但我不知道为什么,所以任何帮助都会不胜感激。

最佳答案

在 C/C++ 中,数组索引从 0 而不是 1 开始。所以 double a[2]a[0]a[1]没有 a[2](有,但不是你的)

关于c++ - 程序返回不正确的值 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15888476/

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