题解 | #三角形判断#

三角形判断

https://www.nowcoder.com/practice/689ec1e742394e09b1059556fc167b65

#include <stdio.h>
#define ORD_TRI 1
#define ISO_TRI 2
#define QEU_TRI 3
int checkTri(int a, int b, int c);
int checkTriType(int a, int b, int c);

int main() {
    // 思路
    // 1. 判断能不能构成三角形:任意两边和大于第三边
    // 2. 判断任意两边相等 -> 等腰
    // 3. 判断某边与其他两边相等 -> 等边
    // 4. 三边均不相等 -> 普通三角形
    int a, b, c;
    int flag = 0;
    while (scanf("%d %d %d", &a, &b, &c) != EOF) {
        getchar();
        if (checkTri(a, b, c)) {
            switch (checkTriType(a, b, c)) {
                case ORD_TRI:
                    printf("Ordinary triangle!\n");
                    break;
                case ISO_TRI:
                    printf("Isosceles triangle!\n");
                    break;
                case QEU_TRI:
                    printf("Equilateral triangle!\n");
                    break;
            }
        } else {
            printf("Not a triangle!\n");
        }
    }
    return 0;
}

int checkTri(int a, int b, int c) {
    int flagTri = 0;
    if ((a + b > c) && (a + c > b) && (b + c > a)) {
        flagTri = 1;
        return flagTri;
    }
    return flagTri;
}

int checkTriType(int a, int b, int c) {
    int flagTriType = 1;
    // 普通 -> flagTriType = 1
    // 等腰 -> flagTriType = 2
    // 等边 -> flagTriType = 3
    if ((a == b) && ( a == c)) {
        flagTriType = 3;
        return  flagTriType;
    } else if ((a == b) || (a == c) || (b == c)) {
        flagTriType = 2;
        return  flagTriType;
    }
    return flagTriType;
}



全部评论

相关推荐

不知道怎么取名字_:两个方向 1.简历针对性准备下 2.面试前也需要准备的 主要还是要看各个公司需求,看公司行业和岗位描述,那里面已经写了对技术的需求,一份简历,不可能和所有嵌入式岗位都匹配的
投递北京经纬恒润科技股份有限公司等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务