列表

详情


BC71. 三角形判断

描述

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

示例1

输入:

2 3 2
3 3 3

输出:

Isosceles triangle!
Equilateral triangle!

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 272KB, 提交时间: 2020-12-05

#include<stdio.h>



int main(){
	int m,n,k;
	while(scanf("%d%d%d",&m,&n,&k)!=EOF){
		
		if(m+n>k&&m+k>n&&n+k>m){
			
			if(m==n&&n==k&&m==k)
			printf("Equilateral triangle!\n");
			else if(m==n||m==k||n==k)
			printf("Isosceles triangle!\n");
			else  printf("Ordinary triangle!\n");
			
			
			
		}else{
			printf("Not a triangle!\n");
		}
		
		
		
	}
	
	
	
	
	
}

C 解法, 执行用时: 1ms, 内存消耗: 304KB, 提交时间: 2021-09-10

#include <stdio.h>
#include <math.h>

int main(void){
    int a = 0, b = 0, c = 0;
    
    while(scanf("%d %d %d", &a, &b, &c) != EOF){
        if(a + b > c && a + c > b && b + c > a){
            if(a == b && a == c){
                printf("Equilateral triangle!\n");
            }
            else if((a == b ) || (a == c ) || (b == c)){
                printf("Isosceles triangle!\n");
            }
            else{
                printf("Ordinary triangle!\n");
            }
        }
        else{
            printf("Not a triangle!\n");
        }
    }
} 

C 解法, 执行用时: 1ms, 内存消耗: 320KB, 提交时间: 2021-09-09

#include<stdio.h>
int main() {
    int a, b, c;
    //循环读入三条边长
    while(scanf("%d %d %d", &a, &b, &c) != EOF) {
        //判断是否等边三角形
        if(a == b &&  b == c)
            printf("Equilateral triangle!\n");
        else if((a == b || a == c || b == c) && a+b > c && a+c > b && c+b > a) //判断是否等腰三角形
            printf("Isosceles triangle!\n");
        else if(a+b > c && a+c > b && c+b > a) //判断是否一般三角形
            printf("Ordinary triangle!\n");
        else //不是三角形
            printf("Not a triangle!\n");
    }
    return 0;
}


C 解法, 执行用时: 1ms, 内存消耗: 324KB, 提交时间: 2021-09-16

#include<stdio.h>
int main()
{
    int a,b,c,p;
    while(scanf("%d %d %d\n",&a,&b,&c)!=EOF)
    {
        if(a+b>c&&a+c>b&&b+c>a)
        {
            if(a==b||a==c||b==c)
            {
                if(a==b&&a==c)
                {
                    printf("Equilateral triangle!\n");
                }
                else
                {
                    printf("Isosceles triangle!\n");
                }
            }
        else
            printf("Ordinary triangle!");
            
         }
        else
        {
            printf("Not a triangle!");
        }
    }
}

C 解法, 执行用时: 1ms, 内存消耗: 332KB, 提交时间: 2021-09-10

#include <stdio.h>
int main()
{
    int a = 0,b = 0, c = 0;
    while (scanf ("%d %d %d",&a,&b,&c)!=EOF)
    {
        if ((a+b)>c && (a+c)>b && (b+c)>a)
        {
             if(a==b || b==c || a==c )
             {
                 if(a==b&&b==c)
                 {
                     printf ("Equilateral triangle!\n");
                 }
                 else 
                 {
                     printf ("Isosceles triangle!\n");
                 }
             }
              else
              {
                  printf ("Ordinary triangle!\n");
               }
        }
        else
            
        {
            printf ("Not a triangle!\n");
        }
    }
    return 0;
}

上一题