可以用海伦定理:
S=sqrt(s*(s-a)*(s-b)*(s-c))
其中等号右边的小s为三边和的一半,
C程序:
#include
#include
#include
void
main()
{
float
a,b,c,sh,s;
scanf("%f
%f
%f",&a,&b,&c);
sh=(a+b+c)/2;
s=sqrt(sh*(sh-a)*(sh-b)*(sh-c));
printf("%f\n",s);
system("pause");
建议求三角形的面积前先判断下能不能构成三角形!
下面修改的程序如下:
#include"stdio.h"
#include"math.h"
main()
{
float a,b,c;
float s,temp;
printf("请依次输入三角形的三边:");
scanf("%f%f%f",&a,&b,&c);
if(((a+b)>c)&&((a+c)>b)&&((b+c)>a)&&((a-b)
我重新写了下,和你一样用海伦公式算的:
#include
#include
double area(double a,double b,double c)
{
double p;
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}//S=√[p(p-a)(p-b)(p-c)];
void main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
printf("a,b,c=%lf %lf %lf\n",a,b,c);
if(a+b>c&&a+c>b&&b+c>a)
printf("三角形的面积是:%lf\n",area(a,b,c));
else
printf("error");
}
#include
#include
void main()
{
float a,b,c,x,area,l;
scanf("%f%f%f",&a,&b,&c);
printf("a,b,c="); //你想输出A,B,C? 那要加上使用的变量啊 printf("a,b,c=%f%f%f",a,b,c);就行啦
if(a+b>c&&a+c>b&&b+c>a);
{
x=(a+b+c)/2;
area=sqrt(x*(x-a)*(x-b)*(x-c)); //公式用错
l=a+b+c;
printf("三角形的面积是:"); //又没有输出数据
}
else
printf("error");
}
我给你重写一个吧
这个程序用了两个子函数,一个是能够成三角形的,一个是不能构成三角形的,如果能够成三角形则调用fun函数,如果不能构成则调用wrong函数!
#include
#include
#include
float fun(float x,float y,float z)
{
float s,area;
s=x/2+y/2+z/2;
area=sqrt(s*(s-x)*(s-y)*(s-z));
return(area);
}
void wrong()
{
printf("您所输入的三边长度不能构成三角形!");
}
main()
{
float a,b,c,S;
scanf("%f%f%f",&a,&b,&c);
if(c>=a+b||b>=a+c||a>=b+c)
wrong();
else
{
S=fun(a,b,c);
printf("面积=%f\n",S);
}
}
三角形求面积有很多种方式
简单的输入三角形的底和高求面积的呈现如下:
#include
"stdio.h"
void
main()
{
float
a
=
0;
float
h
=
0;
printf("请输入三角形的底边长:");
scanf("%f",&a);
while
(a
<=
0)
{
printf("您输入的值不正确,请重新输入:");
scanf("%f",&a);
}
printf("请输入三角形的高:");
scanf("%f",&h);
while
(h
<=
0)
{
printf("您输入的值不正确,请重新输入:");
scanf("%f",&h);
}
printf("三角形的面积为:%f\n",a*h/2);
}