//7.2 求一元二次方程的跟
#include <stdio.h>
#include <math.h>
//定义全局变量 方程的根x1、x2,▲的值d,须根参数p、q
float x1,x2,d,p,q;
//函数声明
void greater_than_zero(float a,float b);
void equal_than_zero(float a,float b);
void smaller_than_zero(float a,float b);
//函数定义
void greater_than_zero(float a,float b)
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("x1 = %f,x2 = %f\n",x1,x2);
}
void equal_than_zero(float a,float b)
{
x1 = x2 = (-b) / (2 * a);
printf("x1 = x2 = %f\n",x1);
}
void smaller_than_zero(float a,float b)
{
p = (-b) / (2 * a);
q = sqrt(-d) / (2 * a);
// printf("p = %f,q = %f\n",p,q);
printf("x1 = %f + %fi,x2 = %f - %fi\n",p,q,p,q);
}
int main()
{
//定义方程的参数及初始化赋值
float a,b,c;
printf("please input a b c:");
scanf("%f,%f,%f",&a,&b,&c);
//求▲的值
d = b * b - 4 * a * c;
// printf("\nd = %f\n",d);
//判断▲
if(d > 0)
greater_than_zero(a,b);
else if(d == 0)
equal_than_zero(a,b);
else
smaller_than_zero(a,b);
return 0;
}