#include <stdio.h>
#include <math.h>
int main() {
double Cx, Cy, R; // 圆的参数
double A, B, C; // 直线的参数
double m, b; // 直线的斜率和截距
double x1, y1, x2, y2; // 交点坐标
// 输入圆的参数
printf("Enter the center coordinates of the circle (Cx Cy): ");
scanf("%lf %lf", &Cx, &Cy);
printf("Enter the radius of the circle (R): ");
scanf("%lf", &R);
// 输入直线的参数
printf("Enter the coefficients of the line (A B C): ");
scanf("%lf %lf %lf", &A, &B, &C);
// 计算直线的斜率和截距
m = -A / B;
b = -C / B;
// 计算交点坐标
double discriminant = R * R * (1 + m * m) - pow(b - Cy, 2);
if (discriminant < 0) {
printf("No real intersection points.\n");
} else {
x1 = (-m * b + sqrt(discriminant)) / (1 + m * m);
y1 = m * x1 + b;
x2 = (-m * b - sqrt(discriminant)) / (1 + m * m);
y2 = m * x2 + b;
printf("Intersection Point 1: (%lf, %lf)\n", x1, y1);
printf("Intersection Point 2: (%lf, %lf)\n", x2, y2);
}
return 0;
}