#include<stdio.h>
#include<math.h>
//求解一元二次方程
//sqrt要加头文件<math.h>
void Fun(int a,int b,int c)
{
int d = b*b-4*a*c;//b^2-4ac;
float x1,x2;//声明float类型
if(a == 0)//a == 0,一元一次方程
{
x1 = x2 = -c/(float)b; //一个数除以float类型,得数还是float类型
}
//if(d>=-0.000001 && d <= 0.000001)相当于d==0
if(d < 0)
{
printf("d <0 ==>无解\n");
return;
}
else if(d == 0)
{
x1 = x2 = -b/(float)(2*a);
printf("d == 0 ==>%f,%f\n",x1,x2);//打印%f类型
}
else
{
x1 = (-b+sqrt((float)d))/(2*a);//sqrt求平方根
x2 = (-b-sqrt((float)d))/(2*a);
printf("d >0 ==> %f,%f\n",x1,x2);
}
}
int main()
{
Fun(1,1,2);
Fun(1,4,2);
Fun(1,2,1);
getchar();
return 0;
}
答案:
d <0 ==>无解
d >0 ==> -0.585786,-3.414214
d == 0 ==>-1.000000,-1.000000