【c语言】求一元二次方程ax^2+bx+c=0的根

【c语言】求一元二次方程ax^2+bx+c=0的根_第1张图片

#include
#include
#define EON 1e-6//为数字“1” 
int main(void)
{
	float a,b,c;
	double mate1,mate2,t1,t2,t3;
	printf("plaese input three numbers:");
	scanf("%f,%f,%f",&a,&b,&c);
	if(fabs(a)<=EON)
		if(fabs(b)<=EON)
			printf("方程无解");
		else
			printf("方程为一元一次方程,有一个根x=%.4f\n",-c/b);
	else
	{
		mate1=b*b-4*a*c;
		mate2=4*a*c-b*b;
		t1=-b/(2*a);
		t2=sqrt(fabs(mate1))/(2*a);//在判断之前防止根号里面数小于0
		t3=sqrt(fabs(mate2))/(2*a);
		
		if(mate1>EON)//相当于a>0
		{
			printf("方程有两个实根:\n");
			printf("x1=%.4f,x2=%.4f",t1+t2,t1-t2); 
		}
		else if(fabs(mate1)<EON)//相当于a=0
		{
			printf("方程有一个实根:\n");
			printf("x=%.4f",t1);
		}
		else
		{
			printf("方程有两个虚根:\n");
			printf("x1=%.4f+%.4fi,x2=%.4f-%.4fi",t1,t3,t1,t3);
		}
	} 
}

【c语言】求一元二次方程ax^2+bx+c=0的根_第2张图片
【c语言】求一元二次方程ax^2+bx+c=0的根_第3张图片
【c语言】求一元二次方程ax^2+bx+c=0的根_第4张图片

你可能感兴趣的:(c语言学习笔记)