Intersección recta- circunferencia

El problema que se plantea es hacer un programa que nos diga si una circunferencia y una recta intersectan o no.

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

int main(int argc, char** argv) 

{
 float xcentro,ycentro,radio;
 float pendiente,b;
 float perpendicularpendiente,perpendicularB;
 float xinterseccion, yinterseccion;
 float distx,disty,dist;
 
 std::cout << "PROGRAMA DE CALCULO DE INTERSECCIONES ENTRE CIRCUNFERENCIA-RECTA" << std::endl;
 
 std::cout << "DATOS CIRCUNFERENCIA" << std::endl;

 std::cout << "Introduzca el centro de la circunferencia:" << std::endl; 

 
 std::cout << "x: ";
 std::cin >> xcentro;
 std::cout << std::endl;
 
 std::cout << "y: ";
 std::cin >> ycentro;
 std::cout << std::endl;
 
 std::cout << "Introduzca el radio de la circunferencia: " ;
 std::cin >> radio;
 std::cout << std::endl;
 
 std::cout << std::endl << "DATOS RECTA" << std::endl;
 
 std::cout << "Introduzca el pendiente de la recta (m) " ;
 std::cin >> pendiente;
 
 std::cout << "Introduzca punto de intersección con el eje de las Y (b) " ;
 std::cin >> b;
 
 std::cout << std::endl << "CALCULANDO....ESPERE UN MOMENTO" << std::endl;

 perpendicularpendiente = -(1/pendiente);

 
 //Calculamos el termino independiente de una recta perpendicular a la dada.
 perpendicularB = ycentro - perpendicularpendiente*xcentro;

 //Calculamos q punto de la recta es el más cercano al centro de la circunferencia

 xinterseccion = (perpendicularB-b)/(pendiente-perpendicularpendiente);
 yinterseccion = xinterseccion*pendiente+b;
 
 //calculamos la distancia minima entre recta y circunferencia
 distx = xinterseccion - xcentro;
 disty = yinterseccion - ycentro;
 
 dist = sqrt(distx*distx + disty*disty);
 
 if (dist <= radio)
 {
  std::cout << "La recta interesecta la circunferencia." << std::endl;
 }
 else
 {
  std::cout << "La recta NO intersecta la circunferencia." << std::endl;
 }
 
 system("pause");
  
 return 0;
}