C语言习题5.11--判断三角形
2016-11-10 09:17
781 查看
问题及代码:
#include <stdio.h>
#define swap(x,y){x=x+y;y=x-y;x=x-y;}
/*娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学会了如何凭借三角形三边判断三角形的形状(设两条短边为啊a,b;长边为c,判断a*a+b*b和c*c的关系),于是娄月告诉刘月,给她三条边,她可以在一秒之内知道三角形是直角,钝角还是锐角三角形,当然,这么快只有编程才能做到。以下是娄月编写的程序,由于忘记了一些知识点,三个判断三角形的函数无法完成,于是 只能请聪明的你帮忙喽。
烟台大学计算机与控制工程学院
冯琬淇
*/
#include <stdio.h>
/*下面三个函数都是:是返回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);
}
提交时只需提交right_triangle,acute_triangle,obtuse_triangle三个函数
Input
三角形的三条边,大小未知,不必考虑构不成三角形的情况
Output
锐角三角形,直角三角形还是钝角三角形
Sample Input
3 4 5
Sample Output
直角三角形
运行结果:
总结心得:
主要是掌握公式,此次代码看起来比较麻烦,在以后的学习中希望能有方法改进减去部分长串的“double”
#include <stdio.h>
#define swap(x,y){x=x+y;y=x-y;x=x-y;}
/*娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学会了如何凭借三角形三边判断三角形的形状(设两条短边为啊a,b;长边为c,判断a*a+b*b和c*c的关系),于是娄月告诉刘月,给她三条边,她可以在一秒之内知道三角形是直角,钝角还是锐角三角形,当然,这么快只有编程才能做到。以下是娄月编写的程序,由于忘记了一些知识点,三个判断三角形的函数无法完成,于是 只能请聪明的你帮忙喽。
烟台大学计算机与控制工程学院
冯琬淇
*/
#include <stdio.h>
/*下面三个函数都是:是返回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);
}
提交时只需提交right_triangle,acute_triangle,obtuse_triangle三个函数
Input
三角形的三条边,大小未知,不必考虑构不成三角形的情况
Output
锐角三角形,直角三角形还是钝角三角形
Sample Input
3 4 5
Sample Output
直角三角形
运行结果:
总结心得:
主要是掌握公式,此次代码看起来比较麻烦,在以后的学习中希望能有方法改进减去部分长串的“double”
相关文章推荐
- C语言习题5.11--判断三角形
- C语言程序题目--闰年判断,三边能否构成三角形
- 判断平面内一点和三角形位置关系的算法和python语言的程序实现
- 我要学C#语言程序设计【解题篇】(二):输入三个整数,判断是否能够组成三角形
- Java语言程序设计-基础篇-5.3习题-回文整数判断
- oj2972 C语言习题5.24--文件操作1
- 一个简单的判断三角形形状的C程序
- 九度oj 1048 判断三角形类型
- 判断三角形
- 问题 E: C语言习题 等长字符串排序
- Swift如何判断字符串的语言
- c程序设计语言习题1-9
- 习题1_6三角形
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-27
- 21_Shell语言――条件判断一之执行状态返回值、单分支条件判断语句
- 分支-02. 三角形判断
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-21
- NOJ1013 三角形判断(模拟)
- oj2422: C语言习题 n个数逆序
- 判断一个点在三角形之内