用函数求一个三角形面积
从键盘输入三角形的三条边,用函数求三角形面积,要求用欧拉公式,且主函数只负责输入和输出,子函数负责其他
3回答
-
望远
#include<stdio.h>
#include<math.h>
float fun(float a,float b,float c)
{
float C,S;
if(a<=0||b<=0||c<=0)
return -1;
if(a+b<=c||a+c<=b||b+c<=a)
return -1;
if(a-b>=c||a-c>=b||b-c>=a)
return -1;
C=(a+b+c)/2;
S=sqrt(C*(C-a)*(C-b)*(C-c));
return S;
}
void main()
{
float x,y,z,S;
printf("请依次输入三条边(以空格分隔):");
scanf("%f%f%f",&x,&y,&z);
S=fun(x,y,z);
if(S==-1)
printf("数据错误!!\n");
else
printf("面积=%.2f\n",S);
}ps:这个不是欧拉公式,这是海伦公式。
-
rubyc
#include<stdio.h>
#include<math.h>
float fun(float a,float b,float c){
float p,s;
if(a+b>c&&a+c>b&&c+b>a){
p=(a+b+c)/2;
p=p*(p-a)*(p-b)*(p-c);
s=sqrt(p);
printf("%f",s);
}
else printf("你输入的三边,不能构成三角形");
}
int main()
{
float s,a,b,c,p;
printf("请输入三角形的三边,以空格隔开\n");
scanf("%f%f%f",&a,&b,&c);
fun(a,b,c);
return 0;
}