首页 > 试题广场 >

判断三角形类型

[编程题]判断三角形类型
  • 热度指数:7083 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给定三角形的三条边,a,b,c。判断该三角形类型。

输入描述:
测试数据有多组,每组输入三角形的三条边。


输出描述:
对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。
示例1

输入

3 4 5

输出

直角三角形
推荐
用勾股定理判定。
较小两边的平方和 小于 最长边的平方,则为 钝角
                 等于         则   直角
                 大于         则   锐角
代码如下:
#include <stdio.h>
#include <algorithm>
using namespace std;
int main() {
    int x[3];
    while(scanf("%d %d %d", x, x+1, x+2) != EOF) {
        sort(x, x+3);
        int min2 = x[0]*x[0] + x[1]*x[1];
        int max2 = x[2]*x[2];
        if(min2 > max2) {
            printf("锐角三角形\n");
        } else if(min2 == max2) {
            printf("直角三角形\n");
        } else {
            printf("钝角三角形\n");
        }
    }
    return 0;
} 


编辑于 2016-01-11 11:04:43 回复(1)
Java 
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int[] a= new int[3];
            for (int i = 0; i < 3; i++) a[i]= scanner.nextInt();
            Arrays.sort(a);
            int x = a[0]*a[0]+a[1]*a[1];
            int y = a[2]*a[2];
            if (x<y) System.out.println("钝角三角形");
            else if (x==y) System.out.println("直角三角形");
            else System.out.println("锐角三角形");
        }
    }
}


发表于 2020-03-19 20:51:06 回复(0)
import java.util.Arrays;
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        final int NUM = 3; 
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int[] tri = new int[NUM];
            int i = 0;
            while(i<NUM){
                tri[i++]=sc.nextInt();
            }
            judge(tri);
        }
    }
    public static void judge(int[] tri){
        Arrays.sort(tri);
        int judgeNum = tri[0]*tri[0] + tri[1]*tri[1] - tri[2]*tri[2];
        if(0 == judgeNum){
            System.out.println("直角三角形");
        }else if(0 > judgeNum){
            System.out.println("钝角三角形");
        }else{
            System.out.println("锐角三角形");
        }
    }
}

发表于 2018-08-02 23:04:49 回复(0)

本题不算复杂,原理有人说了。
像这种判定:等腰直角、直角、等边、等腰、普通三角形、构不成三角形的会更加复杂。

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author Allen_Hua
 * @create_time 创建时间:May 13, 2018 3:40:48 PM 类说明
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int[] data = new int[3];
            for (int i = 0; i < data.length; i++) {
                data[i] = scan.nextInt();
            }
            Arrays.sort(data);
            int judge = data[0] * data[0] + data[1] * data[1] - data[2] * data[2];
            if (judge > 0) {
                System.out.println("锐角三角形");
            } else if (judge == 0) {
                System.out.println("直角三角形");
            } else {
                System.out.println("钝角三角形");
            }
        }
    }
}
发表于 2018-05-13 15:53:52 回复(0)

问题信息

难度:
3条回答 11820浏览

热门推荐

通过挑战的用户

查看代码
判断三角形类型