输入数字之后没输出…

img

img


基础不太好。。打成这个样子,输入之后就没输出了,也不知道咋回事

修改如下,供参考:

#include<stdio.h>
#include<math.h>
int main()
{
    double x1,x2,a,b,c,y,d;
    int n  ,i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%lf%lf%lf",&a,&b,&c);
        if(a == 0){
           printf("不是一元二次方程.\n");
        }
        else{
             y = b*b-4*a*c;
             if(y > 0){
                x1 = (-b+sqrt(y))/(2.0*a);
                x2 = (-b-sqrt(y))/(2.0*a);
                printf("x1=%.5lf;x2=%.5lf\n",x1,x2);
             }
             else if(y == 0){
                x1 = x2 = -b/(2.0*a);
                printf("x1=x2=%.5lf\n",x1);
             }
             else if(y < 0){
                x1 = (-b)/(2.0*a);//实部
                x2 = (sqrt(-y))/(2.0*a); //虚部
                printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n",x1,x2,x1,x2);
             }
        }
    }
    return 0;
}

double 用%f不用%lf

我建议你在x1赋值和x2赋值前各加一条打印,看有没有,我怀疑是x1赋值那个运算报错了