c语言求三角形的面积及判断三角形类型

时间:2022-09-25 00:26:20
//==================
//判断三角形的类型
//==================
#include <stdio.h>
#include <math.h>

void judge(int a, int b, int c)
{
	float s, area;
	if (a + b > c && b + c > a && a + c > b)			//两边之和大于第三边
	{
		s = (a + b + c) / 2;		
		area = (float)sqrt(s *(s - a)*(s - b)*(s - c)); //计算三角形的面积
		printf("面积是:%f\n", area); 					
		if (a == b && a == c)							//判断三条边是否相等
			printf("等边三角形\n");						//输出等边三角形         													
		else if (a == b || a == c || b == c)			//判断是否有两边相等         													
			printf("等腰三角形\n");						//等腰三角形
		else if ((a *a + b * b == c *c) || 				//两边的平方和等于第三边的平方
			(a * a + c * c == b *b) || 
			(b * b + c * c == a *a))         	
			printf("直角三角形\n");						//直角三角形
		else
			printf("普通三角形");						//普通三角形	
	}
	else
		printf("不能构成三角形");						//两边之和小于第三边不能组成三角形
}

int main()
{
	float a, b, c;
	printf("请输入三角形三条边长:");
	scanf("%f%f%f", &a, &b, &c);						//输入三条边
	judge(a,b,c);
	
	return 0;
}
求三角形面积2:
#include <stdio.h>
#include <math.h>
main()
{ 
 float a, b, c, p;
 double q, s;
 scanf("%f,%f,%f",&a,&b,&c);
 p=(a+b+c)/2.0;
 q=p*(p-a)*(p-b)*(p-c);
 s=sqrt(q);
 printf("a=%0.2f\nb=%0.2f\nc=%0.2f\n",a,b,c);
 printf("area=%f\n",s); 
}