c语言求一元二次方程的根

img


运行结果总是当a为0的语句,不懂错在哪里?

#include<stdio.h>
#include<math.h>
int main()
{
    float a,b,c,x1,x2,qggs1,qggs2,delta,real,image;
    printf("输入方程系数的值:");
    scanf("%.2f%.2f%.2f",&a,&b,&c);
    qggs1=-b/(2.0*a);
    qggs2=sqrt(delta)/(2.0*a);
    delta=b*b-4*a*c;
    if(a==0)
    
     printf("不是一元二次方程,a不能等于0");
    
    else if (delta>=0)
    {
     x1=qggs1+qggs2;
     x2=qggs1-qggs2;
     printf("x1=.2%f\nx2=.2%f\n",x1,x2);
    }
    
    else
    {
     real=qggs1;
     image=qggs2;
     printf("%.2f+%.2fi\n",real,image);
     printf("%.2f-%.2fi\n",real,image);
    }
    return 0;
 } 


 printf("x1=.2%f\nx2=.2%f\n",x1,x2);把.2放在%后面,

scanf("%.2f%.2f%.2f",&a,&b,&c);把里面的.2去掉,输入直接加类型就可以了
把float改成double;
还有就是如果是delta是负数,开根是算不出来,所以else里面要加上
delta=4ac-bb;
qggs2=sqrt(delta)/(2.0
a);