编辑代码

//ax平方+bx+c=0,解的判别与输出           
#include <stdio.h>
#include <math.h>
#define EPS 1e-7
int main() {
	float a, b, c, disc, q1, q2;  //参数a,b,c,判别式
	printf("Intput a,b,c:");
	scanf("%f,%f,%f",&a,&b,&c);
	if (fabs(a)<=EPS) {      //由于a精度的的问题,EPS是一个非常小的正数
		printf("请输入二次方程");
	}   
	else if (a > EPS){
		disc = b * b - 4 * a * c;      //计算判别式
		q1 = -b / (2 * a);                    
		q2 = (sqrt(fabs(disc))) / (2 * a);      //fabs绝对值,sqrt根2
		if (fabs(disc) <= EPS) {            //判别式等于0,解相同
			printf("x1 = x2 = %.2f\n", q1);
		}
		else if (fabs(disc) > 0) {        //判别式大于0,两个不同的解
			printf("x1 = %.2f,x2 = %.2f\n", q1+q2, q1-q2);
		}
		else {        // 判别式小于0  共轭复数
			printf("x1 = %.2f + %.2fi,x2 = %.2f - %.2fi\n", q1, q2, q1, q2);
		}
	}
	return 0;
}