求一元二次方程的解。
代码如下:
//求一元二次方程的解
#include<stdio.h>
#include<math.h>
int main(void)
{float a,b,c,d,x1,x2,p,q;printf("a,b,c=?\n");scanf("%f,%f,%f",&a,&b,&c);printf("方程 ");if(fabs(a)<1e-6){printf("不是一元二次方程。\n");}else{d=b*b-4*a*c;if(fabs(d)<1e-6){printf("有两个相等实根: %8.4f\n",-b/(2*a));}else{if(d>1e-6){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("有两个不相等实根: %8.4f和%8.4f\n",x1,x2);}else{p=-b/(2*a);q=sqrt(-d)/(2*a);printf("有虚根: \n");printf("%8.4f+%8.4fi\n",p,q);printf("%8.4f-%8.4fi\n",p,q);}}}return 0;
}
键盘输入:
0,1,2 空格
结果如下:
键盘输入:
1,2,0 空格
结果如下:
键盘输入:
2,-4,6 空格
结果如下:
键盘输入:
1,2,1 空格
结果如下: