Ciao a tutti!
Sono nuovo e ho cominciato a programmare con C++ da circa 3 settimane. Ho creato questo programma che, in base ai dati inseriti calcola diversi dati incogniti di un triangolo.
C'è però un problema: se inserisco tutti i dati lasciando incognitiIl lato BC e AB (la base) il programma dovrebbe, prima calcolare AB (area diviso altezza), poi BC, conoscendo il perimetro e i due lati AB e CA (perimetro meno AB meno CA), invece lascia BC incognito e restituisce errore!!
Qualcuno saprebbe dirmi come fare??
Grazie in anticipo!

codice:
#include <iostream> 
using namespace std;
int main()
{
	
	double AB=0, BC=0, CA=0, p=0, A=0, h=0;
	cout<<"Benvenuto!\ngrazie a questo programma puoi calcolare dati incogniti di un triangolo\n a partire dal quelli conosciuti\ninserisci i dati del problema scrivendo '0' per quelli incogniti...\n\n\n"
		<<"      C"<<endl
		<<"      *"<<endl
		<<"     *    *"<<endl
		<<"    *        *"<<endl
		<<"   * * * * * *"<<endl
		<<"  A                B"<<endl<<endl<<endl;
	cout<<"AB:"; cin>>AB;
	cout<<"BC:"; cin>>BC;
	cout<<"CA:"; cin>>CA;
	cout<<"p:"; cin>>p;
	cout<<"A:"; cin>>A;
	cout<<"h:"; cin>>h;
	cout<<endl<<endl<<"Ecco i risultati:"<<endl<<endl;

if(AB==0) AB=p-BC-CA;
if(BC==0) BC=p-AB-CA;
if(CA==0) CA=p-BC-AB;
if(p==0) p=AB+BC+CA;
if(A==0) A=AB*h;
if(h==0) h=A/AB;
if(AB==0) AB=A/h;
if(BC==0) BC=p-AB-CA;
if(CA==0) CA=p-BC-AB;
if(p==0) p=AB+BC+CA;
if(A==0) A=AB*h;
if(h==0) h=A/AB;
	cout<<"AB:"<<AB<<endl;
	cout<<"BC:"<<BC<<endl;
	cout<<"CA:"<<CA<<endl;
	cout<<"p:"<<p<<endl;
	cout<<"A:"<<A<<endl;
	cout<<"h:"<<h<<endl;
	if(AB==0||BC==0||CA==0||A==0||p==0||h==0)cout<<"ERRORE!! DATI INSUFFICENTI PER ELABORARE!\a\a\a\n\n";
}