输入三角形的三个边长,利用自定义函数来判断三角形的形状、并计算该三角形的面积。

输入三角形的三个边长,利用自定义函数来判断三角形的形状、并计算该三角形的面积。设定两个函数,分别实现:判断三角形的形状、计算三角形的面积。intt_style(inta,... 输入三角形的三个边长,利用自定义函数来判断三角形的形状、并计算该三角形的面积。 设定两个函数,分别实现:判断三角形的形状、计算三角形的面积。 int t_style(int a,int b,int c); --判断三角形的类型 , 其返回值:1 :等边三角形,2: 等腰三角形,3: 直角三角形,4:一般三角形, -1 :边长为正但不构成三角形, -2 :边长有负值 float t_area(int a, int b, int c); --计算三角形的面积 展开
 我来答
My_Persistence
2017-12-06 · TA获得超过3466个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:420万
展开全部

示例代码如下:

#include <stdio.h>

#include <math.h>

int t_style(int a,int b,int c)

{

int tmp;

if(a<=0 || b<=0 || c<=0)  //如果边长有非正值

return -2;

if(a == b && b==c)

return 1;

//先对a,b,c进行从小到大排序,方便判断

if(a>b){

tmp=a; a=b; b=tmp; 

}

if(a>c){

tmp=a; a=c; c=tmp;

}

if(b>c){

tmp=b; b=c; c=tmp;

}

if(a+b > c){

if(a==b || b==c || a==c)

return 2;

else if(a*a + b*b == c*c)

return 3;

else

return 4;

}

else

return -1;

}

float t_area(int a,int b,int c)

{

float s,area;

s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c));

return area;

}

int main()

{

int x,y,z;

printf("输入边长: ");

scanf("%d%d%d",&x,&y,&z);

switch(t_style(x,y,z))

{

case 1: 

printf("等边三角形\n"); break;

case 2:

printf("等腰三角形\n"); break;

case 3:

printf("直角三角形\n"); break;

case 4:

printf("一般三角形\n"); break;

case -1:

printf("边长为正但不能构成三角形\n"); break;

case -2:

printf("边长有负值\n");

}

if(t_style(x,y,z) > 0)

printf("三角形面积= %.2f\n",t_area(x,y,z));

return 0;

}

示例运行结果:

黑马程序员
2017-12-06 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
  1. 判断是否构成三角形1)判定a>0&&b>0&&c>0(判断三个数为正数)

  2. 对a b c三个数由小到大排序,得到 a<b<c(排序,简化判断量编制和大于第三边,两边之差小于第三边的判断)

  3. 判断a+b>c && c-b<a c-a<b (判定两边之和大于第三边,两边之差小于第三边)

  4. 利用海伦公式,求面积

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式