Se hai davvero scritto così il codice nell'IDE ci credo che puoi aver fatto un errore come quello della i, non è per criticare, ma imparare ad indentare il testo ti aiuta a leggerlo con molta più chiarezza e ad evitare errori stupidi (oltre che a risparmiare tempo). In più chi lo legge riesce ad identificare molto più velocemente il problema. Se già lo riscrivi così (e utilizzi il tag code, o php che colora le parole chiave, tanto il C++ ha una sintassi quasi identica):
Vedrai che riuscirai a capire già a colpo d'occhio cosa fa il programma. Cmq non ho corretto l'errore della i, suppongo tu stia parlando di numeri complessi giusto? Ora non ricordo la risoluzione delle equazioni di secondo grado, ma di sicuro non puoi riscrivere così com'è il valore di sqrt(-1) in i dato che non esiste nella normale radice quadrata. Ora non so se cmath abbia funzioni matematiche per risolvere i complessi, ma trovo più pratico scrivere la i nel cout per lasciar intedere quale sia la parte immaginaria. Quindi sarà una cosa del tipo: cout<<PR<<"+i"<<PI<<" "<<PR<<"-i"<<PI;
PHP:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b, c, D;
float X2, X1, PR, PI;
cin >> a >> b >> c;
D = b*b - (4*a*c);
if (D > 0)
{
X1 = [-b + sqrt ( D )] / (2*a) ;
X2 = [-b - sqrt ( D )] / 2*a ;
cout << X1 << X2;
}
else if (D == 0)
{
X1 = -b/(2*a);
X2 = X1;
cout << X1 << X2;
}
else
{
PR = -b/(2*a);
PI = sqrt(abs ( D));
X1 = PR + i*PI;
X2 = PR - i*PI;
cout << X1 << X2;
}
return 0;
}