Sistema lineare con metodo di Cramer (C++)

di il
3 risposte

Sistema lineare con metodo di Cramer (C++)

Ciao a tutti.
Ho un problema con questo programma, per qualche strano motivo il segno di X non è mai corretto, se volete provare basta scrivere a=2 b=3 c=12, a=3 b=-1 c=7.
Non penso di aver sbagliato i calcoli, ma X dovrebbe essere 3 mentre in output viene mostrato -3.
Questo è il codice
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int calcoloDeterminante(int a, int b, int c, int a1, int b1, int c1)
{
	int determinante = a * b1 - b * a1;
	return determinante;
}

int determinanteX(int b, int c, int b1, int c1)
{
	int dx = b * c1 - c * b1;
	//cout << dx << endl; debug
	return dx;
}

int determinanteY(int a, int c, int a1, int c1)
{
	int dy = a * c1 - c * a1;
	return dy;
}

int main()
{
	int a, b, c, a1, b1, c1;
	float x, y;
	cout << "A, b e c ";
	cin >> a >> b >> c;
	cout << "A1, b1 e c1 ";
	cin >> a1 >> b1 >> c1;
	x = determinanteX(b, c, b1, c1) / calcoloDeterminante(a, b, c, a1, b1, c1);
	y = determinanteY(a, c, a1, c1) / calcoloDeterminante(a, b, c, a1, b1, c1);
	cout << "Determinante = " << calcoloDeterminante(a, b, c, a1, b1, c1) << " X = " << x << " Y = " << y << endl;
	system("pause");
	return 0;
}

Grazie in anticipo.

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte