Resolución de ecuaciones de segundo grado

Es un ejercicio muy simple pero que se pide en muchas universidades en los primeros días de programación.

#include <iostream>
#include <math.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
 float a,b,c;
 float temp;
 
 std::cout << "Introduzca coeficiente de X^2 (a): ";
 std::cin >> a;
 
 std::cout << "Introduzca coeficiente de X(b): ";
 std::cin >> b;
 
 std::cout << "Introduzca termino independiente (c): ";
 std::cin >> c;
 
 std::cout << "La solucion para la ecuacion de segundo grado: " << a << "x^2 + " << b << "x + " << c << std::endl;
 
 
 if( (b*b) < (4*a*c) )
 {
  std::cout << "No existe, raiz negativa (en el dominio de los numeros complejos si que tendria solucion)" << std::endl;
 }
 else
 {
  temp = sqrt( (b*b) - (4*a*c));
 
  if(!temp)
  {
   std::cout << "Tiene solo una solucion de valor x=" << ( -b / (2*a) ) << std::endl;
  }
  else
  {
   std::cout << "Tiene dos soluciones, x=" << ((-b + temp)/(2*a)) << " y x=" << ((-b - temp)/(2*a)) << std::endl;
  } 
 }
 
 system("pause"); 
 return 0;
}