第十一周OJ(2)判断三角形

来源:互联网 发布:seo认证 编辑:程序博客网 时间:2024/05/31 19:10

*\

烟台大学计算机与控制工程学院

作者:汪莹莉

完成日期:2016年11月14日

问题描述:
娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学

会了如何凭借三角形三边判断三角形的形状(设两条短边为啊a,b;长边

为c,判断a*a+b*b和c*c的关系),于是娄月告诉刘月,给她三条边,她

可以在一秒之内知道三角形是直角,钝角还是锐角三角形,当然,这么快

只有编程才能做到。以下是娄月编写的程序,由于忘记了一些知识点,

三个判断三角形的函数无法完成,于是 只能请聪明的你帮忙喽。

所给主程序:

#include <stdio.h>#define swap(x,y){x=x+y;y=x-y;x=x-y;}/*下面三个函数都是:是返回1,不是返回0*/int right_triangle(double a,double b,double c); /*判断直角三角形*/int acute_triangle(double a,double b,double c); /*判断锐角三角形*/int obtuse_triangle(double a,double b,double c); /*判断钝角三角形*/int main(){    double a,b,c;   /*三角形的三边*/    scanf("%lf %lf %lf",&a,&b,&c);  /*输入三边*/    /*将三边按照从小到大排好*/    if(a>b)        swap(a,b);    if(a>c)        swap(a,c);    if(b>c)        swap(b,c);    /*根据if判断选择三角形*/    if(acute_triangle(a,b,c))        printf("锐角三角形\n");    else if(right_triangle(a,b,c))        printf("直角三角形\n");    else if(obtuse_triangle(a,b,c))        printf("钝角三角形\n");    return 0;}


提交时只需提交right_triangle,acute_triangle,obtuse_triangle三个函数

输入:
三角形的三条边,大小未知,不必考虑构不成三角形的情况

输出:
锐角三角形,直角三角形还是钝角三角形

样例输入:
 3 4 5
样例输出:
直角三角形

程序:

#include <stdio.h>
#define swap(x,y){x=x+y;y=x-y;x=x-y;}
/*下面三个函数都是:是返回1,不是返回0*/
int right_triangle(double a,double b,double c); /*判断直角三角形*/

int acute_triangle(double a,double b,double c); /*判断锐角三角形*/
int obtuse_triangle(double a,double b,double c); /*判断钝角三角形*/
int main()
{
    double a,b,c;   /*三角形的三边*/
    scanf("%lf %lf %lf",&a,&b,&c);  /*输入三边*/
    /*将三边按照从小到大排好*/
    if(a>b)
        swap(a,b);
    if(a>c)
        swap(a,c);
    if(b>c)
        swap(b,c);
    /*根据if判断选择三角形*/
    if(acute_triangle(a,b,c))
        printf("锐角三角形\n");
    else if(right_triangle(a,b,c))
        printf("直角三角形\n");
    else if(obtuse_triangle(a,b,c))
        printf("钝角三角形\n");
    return 0;
}
   int right_triangle(double a,double b,double c) /直角三角形
   {
       return(a*a+b*b==c*c);
   }
int acute_triangle(double a,double b,double c) /锐角三角形
{
    return(a*a+b*b>c*c);
}
int obtuse_triangle(double a,double b,double c) /钝角三角形
{
    return(a*a+b*b<c*c);
}

运行结果:

知识点总结:判断钝角三角形时 两短边平方和小于长边平方,锐角三角形两短边平方和大于长边平方

学习心得:return 0;后的int语句最后没有分号


0 0