问题一百三十六:三角形类问题

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

float calculate_perimeter(float x, float y, float z);
float calculate_area(float x, float y, float z);
int   judge_triangle(float x, float y, float z);
int   judge_righttriangle(float x, float y, float z);
int   judge_isoscelestriangle(float, float y, float z);
int   judge_equilateraltriangle(float x, float y, float z);
int main()
{
      float x;
      float y;
      float z;
          
      scanf("%f %f %f", &x, &y, &z);
      
      if(judge_triangle(x, y, z))
      {
             printf("The area of a triangle is %f.\nThe perimeter of a triangle is %f.\n",
                    calculate_area(x, y, z), calculate_perimeter(x, y, z));
             if(judge_righttriangle(x, y, z))
             {
                  printf("The triangle is right triangle!\n");                         
             }
             else 
             {
                  printf("The triangle is not right triangle!\n");     
             }     
             
             if(judge_isoscelestriangle(x, y, z))
             {
                  printf("The triangle is isoscelestriangle!\n");                              
             }
             else
             {
                  printf("The triangle is not isoscelstriangle\n");    
             }
             
             if(judge_equilateraltriangle(x, y, z))  
             {
                  printf("The triangle is equilateraltriangle!\n");                                
             }             
             else
             {
                  printf("The triangle is not equlateraltriangle!\n");    
             }
      }
      else
      {
          printf("x, y and z cann`t form a triangle!\n");    
      }
      
      system("pause");
      return 0;
}

//definetion of function
//**judge triangle
int judge_triangle(float x, float y, float z)
{
    int flag;
    
    flag=0;
    
    if(x+y> z || x+z> y || y+z> x)
    {
         flag=1;           
    }    
    
    return flag;
}

//**calculate perimeter
float calculate_perimeter(float x, float y, float z)
{
      float perimeter;
      
      perimeter=x+y+z;
      
      return perimeter;     
}

//**calculate area
float calculate_area(float x, float y, float z)
{    
     float s;
     float area;
     
     s=calculate_perimeter(x, y, z)/2;
     area=sqrt((s-x)*(s-y)*(s-z)*s);   
     
     return area;      
}

//**judge righttriagnle 
int  judge_righttriangle(float x, float y, float z)
{     
      int flag;
      
      flag=0;
      
      if(x*x+ y*y ==z*z || x*x+ z*z==y*y || z*z+ y*y==x*x)
      {
          flag=1;        
      }      
      
      return flag;
}

//** judge isoscelestriangle
int  judge_isoscelestriangle(float x, float y, float z)
{
      int flag;
      
      flag=0;
      
      if(x==y || x==z || y==z)
      {   
          if(x==y && y==z && x==z)
          {
             flag=0;        
          }
          else
          {
             flag=1;
          }
      }
      
      return flag;
}

//**judge equilateraltriangle
int judge_equilateraltriangle(float x, float y, float z)
{  
     int flag;
     
     flag=0;
     
     if(x==y && y==z && x==z)
     {
         flag=1;        
     }
     
     return flag;
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值