判断三角形类型:

我是在VS写的程序,所以用scanf_s替代了scanf。以下是代码:

 

#include <stdio.h>
#include <math.h>
#define EPS  1e-1

/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成三角形 1为可以组成三角形
*/
int Triangle(double a, double b, double c)
{
    /*************** Begin ***************/
    int result;
    if (a + b <= c || b + c <= a || a + c <= b) {
        result = 0;
    }
    else {
        result = 1;
    }

    return result;
    /*************** End ***************/
}

/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成等边三角形 1为可以组成等边三角形
*/
int Equilateral(double a, double b, double c)
{
    /*************** Begin ***************/
    int result;
    if (a == c && c == b && a == b) {
        result = 1;
    }
    else {
        result = 0;
    }

    return result;
    /*************** Begin ***************/
}

/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成等腰三角形 1为可以组成等腰三角形
*/
int Isosceles(double a, double b, double c)
{
    /*************** Begin ***************/
    int result;
    if (a == b || b == c || a == c) {
        result = 1;
    }
    else {
        result = 0;
    }

    return result;
    /*************** Begin ***************/
}

/**
* a : 边1
* b : 边2
* c : 边3
* return : 0/1 0为不可以组成直角三角形 1为可以组成直角三角形
*/
int Right(double a, double b, double c)
{
    /*************** Begin ***************/
    int result;
    if (a * a + b * b == (int)(c * c + 0.5) || b * b + c * c == (int)(a * a + 0.5) || c * c + a * a == (int)(b * b + 0.5)) {
        result = 1;
    }
    else {
        result = 0;
    }

    return result;
    /*************** Begin ***************/
}
int  main(void)
{
    double a, b, c;
    printf("Input the three edge length a,b,c:");
    scanf_s("%lf,%lf,%lf", &a, &b, &c);

    /*************** Begin ***************/
    if (Triangle(a, b, c) == 1)
    {
        if (Equilateral(a, b, c) == 1)
        {
            printf("等边");
        }
        else if (Isosceles(a, b, c) == 1)
        {
            printf("等腰");
        }
        if (Right(a, b, c) == 1)
        {
            printf("直角");
        }
    }
    else
    {
        printf("不能构成");
    }
    printf("三角形");
    /*************** Begin ***************/
}

输入需要输入三个数,例如 5,6,8。不能只输入一个,输入一个不能构成三角形。

&&是且,和的意思 ||是隔开两个数的意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值