c语言实例--判定三角形的类型

问题:根据输入的三角形的三条边判断三角形的类型,并输出他的面积和类型。

思路先行:

第一步:先判断输入的三条边能否构成三角形。(a+b>c && a+c>b && b+c>a)。

第二步:计算三角形的面积:根据秦九昭的公式:先计算三角形周长的一半,然后根据公式计算三角形的面积(area=sqrt(s*(s-a)*(s-b)*(s-c)));sart为求根号的数学函数。

第三步:判断三角形的类型:

               等边三角形(a==b && a==c);

               等腰三角形(a==b||b==c||b==c)

                直角三角形(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)

                否则为普通三角形。

代码如下:

#include <stdio.h>                                         //引用头文件
#include <math.h>											//数学公式函数
main()
{
	float a,b,c;											//定义三角形的三条边
	float s,area;											//定义三角形的周长和面积
	printf("请输入您想判断的三角形的三条边:");        
	scanf("%f%f%f",&a,&b,&c);                              //输入三条边
												//第一步:
	if(a+b>c && a+c>b && b+c>a)								//判定三角形是否成立的条件
	{											//第二步:			
		s=(a+b+c)/2;										//计算三角形一半的周长
		area=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("此三角形为普通三角形\n");               //如果都不是则为普通三角形
				}
	}
	else
	{
		printf("此三边构不成三角形!!!\n");                  //三边不能构成三角形
	}
}

输出结果如下:


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页