回复 10楼 love云彩
还好还好。。。Take it easy.
Now. Game over.
你的程序对a,b,c的情况讨论的不够全面 给你一个比较全面的程序吧: #include <stdio.h> #include <math.h> int main() { double a,b,c,x; double x1=0,x2=0,delta=0; printf("***求方程的根:ax^2+bx+c=0***\n\n"); printf("输入 a,b 和 c:"); scanf("%lf%lf%lf",&a,&b,&c); printf("a=%lf,b=%lf,c=%lf\n",a,b,c); if(0 == a) { if(0 == b) printf("此方程无意义!\n"); else { x=-c/b; printf("这是一个一元一次方程!\n"); printf("方程的根是:x=%.2lf\n",x); } } else { printf("这是一个一元二次方程!\n"); delta=b*b-4*a*c; if(delta>0) { x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf("方程的两实根是:\nx1=%.2lf,x2=%.2lf\n",x1,x2); } else if(delta<0) printf("此方程无实根!\n"); else { x1=x2=-b/(2*a); printf("此方程有两相等实根:\nx1=x2=%.2lf\n",x1); } } return 0; }