ITPub博客

首页 > 应用开发 > > c语言函数判断三角形类型,为什么输入任何数据显示的都是不能构成三角形

c语言函数判断三角形类型,为什么输入任何数据显示的都是不能构成三角形

作者:karspb 时间:2019-08-05 10:17:26 0 删除 编辑
#include <stdio.h>
#include <math.h>
#define eps 1e-1

//判断三边是否能构成三角形 
int triangle(double a, double b, double c)
{
    if((a+b>c) && (a+c>b) && (b+c>a) && (a>0 && b>0 && c>0))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
//判断三角形是否为等边三角形 
int equilateral(double a, double b, double c)
{
    if((a==b) && (b==c))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
//判断三角形是否为等腰三角形 
int isosceles(double a, double b, double c)
{
    if((a==b) || (b==c) || (a==c))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
//判断三角形是否为直角三角形 
int right(double a, double b, double c)
{
    if(fabs(a * a + b * b - c * c) <= eps || fabs(a * a + c * c - b * b) <= eps || fabs(b * b + c * c - a * a) <= eps)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{
    double a, b, c;
    printf("Input the three edge length a, b, c:");
    scanf("%lf,%lf,%lf", &a, &b, &c);
    if(triangle(a, b, c))
    {
        if(equilateral(a, b, c))
        {
            printf("等边三角形\n");
            return 0;
        }
        if(isosceles(a, b, c) && right(a, b,c))
        {
            printf("等腰直角三角形\n");
            return 0;    
        }
        if(isosceles(a, b, c))
        {
            printf("等腰三角形\n");
            return 0;
        }
        if(right(a, b, c))
        {
            printf("直角三角形\n");
            return 0;
        }
        printf("一般三角形\n");
        return 0;
    }
    else
    {
        printf("不能构成三角形\n");
        return 0;
    }
}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2001/viewspace-3164336/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-31

  • 博文量
    222
  • 访问量
    16821