首页 > 试题广场 >

判断三角形类型

[编程题]判断三角形类型
  • 热度指数: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)
#include <stdio.h>

int main() {
    int a[3];
    scanf("%d%d%d", &a[0], &a[1], &a[2]);
    for(int i = 0; i < 2; i ++){
        for(int j = 1; j < 3; j ++){
            if(a[j]<a[i]){
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    if(a[0]*a[0]+a[1]*a[1] == a[2]*a[2]){
        printf("直角三角形");
    } else if(a[0]*a[0]+a[1]*a[1] < a[2]*a[2]){
        printf("钝角三角形");
    } else {
        printf("锐角三角形");
    }
    return 0;
}

发表于 2023-03-12 15:31:54 回复(0)
#include<stdio.h>

int main(){
	int a,b,c;
	while(scanf("%d %d %d",&a,&b,&c)!=EOF){
		if(a>=b && a>=c){
			if(b*b+c*c==a*a)
				printf("直角三角形");
			else if(b*b+c*c<a*a)
				printf("钝角三角形");
			else
				printf("锐角三角形");
		}
		else if(b>=a && b>=c){
			if(a*a+c*c==b*b)
				printf("直角三角形");
			else if(a*a+c*c<b*b)
				printf("钝角三角形");
			else
				printf("锐角三角形");
		}
		else if(c>=a && c>=b){
			if(a*a+b*b==c*c)
				printf("直角三角形");
			else if(a*a+b*b<c*c)
				printf("钝角三角形");
			else
				printf("锐角三角形");
		}
		printf("\n");
	}
}

发表于 2022-01-28 19:52:03 回复(0)

问题信息

难度:
2条回答 11826浏览

热门推荐

通过挑战的用户

查看代码
判断三角形类型