C语言:用海伦公式求三角形面积

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:47:53
我编了如下程序:
#include <stdio.h>
#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<cr>
运行结果却是-32704.000000,请问这是什么地方出了问题?

你用到了函数sqrt,这个需要有头文件math.h
在最上面加上#include <math.h>再运行就可以了,即为:
#include <stdio.h>
#include <math.h>
#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);
}
}
我调试过,可以正常运行.