一元二次方程 C语言IF语句嵌套问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一元二次方程 C语言IF语句嵌套问题相关的知识,希望对你有一定的参考价值。
老师要求只用IF语句,我写了下面的代码。在VC6.0里编译和链接否都没大问题(只有说数据转换会丢失数据的,懂得请说下这是为什么。)
#include<stdio.h>
#include<math.h>
void main()
float a,b,c,s,x,x1,x2,m,n;
printf("请依次输入系数a,b,c的值(用逗号隔开):\n");
scanf("%f,%f,%f",&a,&b,&c);
if (a==0)
if(b==0)
if(c==0)
printf("方程有无数个解\n");
else
printf("1方程无解\n");
else
if(c==0)
printf("1方程有唯一解0\n");
else
x=-(c/b);
printf("2方程有唯一解x=\n",x);
else
s=b*b-4*a*c;
if(s<0)printf("2方程无解\n");
else
m=-(b/2*a),n=sqrt(s)/2*a;
x1=m+n,x2=m-n;
printf("方程有两个解分别是\n%f\n%f\n",x1,x2);
代码如上,但是但我输入0,0,0时,编译器却输出了“方程有无数个解”和“方程无解”
2个都有,求解????我知道这个算法不好,可我的 目的在if语句的嵌套上,希望大家帮我看看。谢谢了!
------------------------------------分割--------------------------------------------
printf("2方程有唯一解x=%f\n",x); %f漏掉了楼主。。 参考技术B 这里有点问题:
else
s=b*b-4*a*c;
===》这个花括号删掉,加到else之后,s=b*b-4*a*c;之前追问
嗯,果然是这里有问题。不过貌似还有另外的一个问题:但我输入0,1,1时,编译器就只输出 “2方程有唯一解x=”,完全没有计算的结果-1,能帮忙解决吗?我会追加分的。谢谢。
追答哦,你这里改下,printf("2方程有唯一解x=\n",x); ===》printf("2方程有唯一解x= %d \n",x);
追问应该是%f。非常感谢你。
本回答被提问者采纳以上是关于一元二次方程 C语言IF语句嵌套问题的主要内容,如果未能解决你的问题,请参考以下文章