自己用c语言写的海伦公式求三角形面积,调试没错误,但运行结果却不对,请高手看一下

#include<stdio.h>
#include<math.h>
main()
{
double a,b,c;
double s,area,d;

printf("Enter three number a,b,c.");
scanf("%f%f%",&a,&b,&c);

s=(a+b+c)/2;
d=s*(s-a)*(s-b)*(s-c);

if((a>=c+b)||(b>=a+c)||(c>=a+b))printf("error");
else
{
area=sqrt(d);
printf("The area is %f\n",area);
}
return;
}

#include<stdio.h>
#include<math.h>
main()
{
double a,b,c;
double s,area,d;

printf("Enter three number a,b,c.");
scanf("%f%f%",&a,&b,&c); //请改为scanf("%lf%lf%lf",&a,&b,&c);

s=(a+b+c)/2;
d=s*(s-a)*(s-b)*(s-c);

if((a>=c+b)||(b>=a+c)||(c>=a+b))printf("error");
else
{
area=sqrt(d);
printf("The area is %f\n",area); //请改为 printf("The area is %lf\n",area);
}
return;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-20
我也觉得应该改为高精度类型 lf 可能能正确显示其开跟后的area吧
第2个回答  2010-08-20
double 定义的变量,不是用%f,应该是%lf吧.