程序报错不显示,该怎么改

img

我也是在Dev-C++里面运行的,按你给的代码可以运行,但是结果是错的,看编译日志,在这个标签:

img

因为你在scanf函数里面没有设置a,b,c的地址,按照你的算法改了如下,可以运行了。

#include <stdio.h>
#include <math.h>

int main(void){
    double x1 , x2 , xx;
    double a , b , c;
    
    printf("我们将对一个一元二次方程ax*x+bx+c=0.求解\n现在请你给出a,b,c的值\n我们将给出解(如果有的话)\n");
    printf("a = , b= , c=\n");
    while(3==(scanf("%lf %lf %lf",&a,&b,&c))){
        xx = b*b -4*a*c;
        if(xx>=0){
            printf("此方程有解\n");
            x1 = (-b +sqrt(xx))/2*a;
            x2 = (-b -sqrt(xx))/2*a;
            if(xx){
                printf("此方程有两个解,分别为%lf,%lf\n",x1,x2);
            } else{
                printf("此方程一个解,为%lf\n",x1);
            }
        }else{
            printf("此方程无解,试试其他的吧\n");
        }
    }
    
    return 0;
}