编写程序,任意输入一元二次方程的三个实系数a、b和c,计算并输出该方程所有可能的解。该一元二次方程为:ax2+bx+c=0
此题需要讨论delta和a,b,c取值的情况,通过if语句即可顺利求出
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,delt,x1,x2;
printf("请输入a,b,c的值");
scanf("%f,%f,%f",&a,&b,&c);
delt=b*b-4*a*c;
if(a==0&&b==0&&c==0)
printf("x1与x2为任意数");
if(a==0&&b!=0&&c!=0)
{
x1=-c/b;
printf("x1=x2=%f",x1);
}
else if(a==0&&b==0&&c!=0)
printf("error!");
if(a!=0&&b!=0&&c!=0)
{
if(delt>0)
{
printf("x1=%f",(-b+sqrt(delt))/(2*a));
printf("x2=%f",(-b-sqrt(delt))/(2*a));
}
if(delt<0)
{
printf("x1=%f+i%f",-b/(2*a),sqrt(-delt)/(2*a));
printf("x2=%f-i%f",-b/(2*a),sqrt(-delt)/(2*a));
}
if(delt=0)
printf("x1=x2=%f",delt);
}