满意答案
95211314fj
推荐于 2017.09.05
采纳率:50% 等级:8
已帮助:559人
你的if语句那的括号有问题#include
#include
int main(){
double a,b,c,d,x1,x2;
scanf("%f%f%f",&a,&b,&c);
if(a==0){
if(b==0){
if(c==0)
printf("该式为恒等式\n");
else
printf("该式不成立,请重新输入a,b,c\n");
}else{
x1=c/b;
printf("x1=x2=%f\n",x1);
}else
d=b*b-4*a*c;
if(d<0){
d=-d;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f,虚根\n",x1,x2);
}else{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
return 0;
}追问: 怎么改帮忙的、发个正确的看看
追答: 代码不是贴出来了么……
追问: 抱歉啊,我是新手看不懂。。。
追答: 等下,我看看,你输入的三个参数,a,b,c分别代表什么意思?
追问: 就是ax2+bx+c=0求这个的根的情况
追答: 1234567891011121314151617181920#include #include void main(){ float a,b,c,x1,x2,judge; printf("please input three coefficient:"); scanf("%f,%f,%f",&a,&b,&c); if(a==0) printf("not one yuan quadratic equation"); else { judge=b*b-4*a*c; if(judge<0) printf("no roots"); else if (judge==0) printf("x1=x2=%f",(-b)/(2*a)); else printf("x1=%f,x2=%f",((-b)+sqrt(b*b-4*a*c))/(2*a),((-b)+sqrt(b*b-4*a*c))/(2*a)); }}
追问: ...单写判断的我也会,但是我想还要算若a=0时不是一个一元一次的方程。。那个他、也要求的,包括当b=0时,有可能是恒等式,有可能是不等式,无解。。。
追答: 那就在前面再加几个if判断12345678910111213141516if(a==0&&b==0){ if(c==0) printf("恒成立"); else printf("不成立"); }else if(a==0&&b!=0){ printf("x=%f",-c/b); }else{ judge=b*b-4*a*c; if(judge<0) printf("no roots"); else if (judge==0) printf("x1=x2=%f",(-b)/(2*a)); else printf("x1=%f,x2=%f",((-b)+sqrt(b*b-4*a*c))/(2*a),((-b)+sqrt(b*b-4*a*c))/(2*a)); }这样就可以了
00分享举报