=b+c || b>=a+c || c>=a+b) printf("error\n"); else { area=sqrt((double)(s*(s-a)*(s-b)*(s-c))); printf("%f\n",area); }}运行后输入a,b,c的值:2 3 4运行结果却是-32704.000000,请问这是什么地方出了问题?" /> =b+c || b>=a+c || c>=a+b) printf("error\n"); else { area=sqrt((double)(s*(s-a)*(s-b)*(s-c))); printf("%f\n",area); }}运行后输入a,b,c的值:2 3 4运行结果却是-32704.000000,请问这是什么地方出了问题? - 作业答案大全" />

C语言:用海伦公式求三角形面积我编了如下程序:#include #define s ((a+b+c)/2)void main(){ float a,b,c; double area; scanf("%f%f%f",&a,&b,&c); if(a>=b+c || b>=a+c || c>=a+b) printf("error\n"); else { area=sqrt((double)(s*(s-a)*(s-b)*(s-c))); printf("%f\n",area); }}运行后输入a,b,c的值:2 3 4运行结果却是-32704.000000,请问这是什么地方出了问题?

问题描述:

C语言:用海伦公式求三角形面积
我编了如下程序:
#include
#define s ((a+b+c)/2)
void main()
{
float a,b,c;
double area;
scanf("%f%f%f",&a,&b,&c);
if(a>=b+c || b>=a+c || c>=a+b)
printf("error\n");
else
{
area=sqrt((double)(s*(s-a)*(s-b)*(s-c)));
printf("%f\n",area);
}
}
运行后输入a,b,c的值:2 3 4
运行结果却是-32704.000000,请问这是什么地方出了问题?

你用到了函数sqrt,这个需要有头文件math.h
在最上面加上#include 再运行就可以了,即为:
#include
#include
#define s ((a+b+c)/2)
void main()
{
float a,b,c;
double area;
scanf("%f%f%f",&a,&b,&c);
if(a>=b+c || b>=a+c || c>=a+b)
printf("error\n");
else
{
area=sqrt((double)(s*(s-a)*(s-b)*(s-c)));
printf("%f\n",area);
}
}
我调试过,可以正常运行.