当前位置: 代码迷 >> C语言 >> [求助]请问大哥大姐们
  详细解决方案

[求助]请问大哥大姐们

热度:398   发布时间:2006-02-25 06:18:00.0
[求助]请问大哥大姐们

main()
{float a,b,c,d,x1,x2;
scanf("%f,%f,%f,&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{x1=(-b)+sqrt(d)/(2*a),x2=(-b)+sqrt(d)/(2*a);
printf("x1=%f,x2=%f,x1,x2")}
else if(d<0)
printf("donot real root\n");
else {x1=x2=(-b)/2*a;
printf("x1=x2=%f\n",x1);
}
这个题目错了没有啊 ?

搜索更多相关的解决方案: 大姐  

----------------解决方案--------------------------------------------------------

main()前加#include<math.h>
自己试试,sqrt()市函数库中的函数


----------------解决方案--------------------------------------------------------

在VC下还要求加上#incldue<stdio.h>
另外除了一些地方少了; "的问题外应该算是没错的。

我也不是细心的人,大家也看看。


----------------解决方案--------------------------------------------------------
{x1=(-b)+sqrt(d)/(2*a),x2=(-b)+sqrt(d)/(2*a);
此行错误x1=(-b)+sqrt(d)/(2*a)后面用分号
printf("x1=%f,x2=%f,x1,x2")} 此行错误,对照书就知道什么地方错了
----------------解决方案--------------------------------------------------------
main()
{float a,b,c,d,x1,x2;
scanf("%f,%f,%f,&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
x1=(-b)+sqrt(d)/(2*a),x2=(-b)+sqrt(d)/(2*a);
printf("x1=%f,x2=%f,x1,x2"); /*这里应该有;*/
}
else if(d<0)
printf("donot real root\n");
else
{x1=x2=(-b)/2*a;
printf("x1=x2=%f\n",x1);
} /*这里还少一个'}'*/
}

----------------解决方案--------------------------------------------------------
以下是引用aike520在2006-2-25 6:18:00的发言:

main()
{float a,b,c,d,x1,x2;
scanf("%f,%f,%f,&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{x1=(-b)+sqrt(d)/(2*a),x2=(-b)+sqrt(d)/(2*a);
printf("x1=%f,x2=%f,x1,x2")}
else if(d<0)
printf("donot real root\n");
else {x1=x2=(-b)/2*a;
printf("x1=x2=%f\n",x1);
}
这个题目错了没有啊 ?

第一点:首先你先把求根公式弄清楚,你这程序里公式都错了
第二点:这方程一定是二次的吗?对了,求根前先判断a是否等于0,等于0的话,这根就用不到求根公式了
第三点:浮点数比较大小,不是那么比较的例如在定义m为float时,要判断它等于0,必须有(m<=le-6)&&(m>=-le-6).
那这程序是有问题的。

最后:一定别忘了加应该加的头文件


----------------解决方案--------------------------------------------------------
  相关解决方案