c语言代码,输入三条边看能不能构成三角形
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言代码,输入三条边看能不能构成三角形相关的知识,希望对你有一定的参考价值。
如果要加上任意两边之差小于第三边要怎么写?
# include <stdio.h>
int main(void)
double a, b, c, sum;
printf("输入三条边:\n\a");
scanf("%lf%lf%lf", &a, &b, &c);
if ((a+b)>c&&(a+c)>b&&(b+c)>a)
printf("可以构成三角形。\n");
printf("周长 = %f",sum = a+b+c);
else
printf("不能构成三角形。\n");
return 0;
也可以写成if嵌套的样子,如下
#include <stdio.h>
#include "math.h"
int main(void)
double a, b, c, sum;
printf("输入三条边:\n\a");
scanf("%lf%lf%lf", &a, &b, &c);
if ((a+b)>c&&(a+c)>b&&(b+c)>a)
if(fabs(a-b)<c&&fabs(a-c)<b&&fabs(b-c)<a)
printf("可以构成三角形。\n");
printf("周长 = %f",sum = a+b+c);
else
printf("不能构成三角形。\n");
return 0;
这里fabs()是取绝对值函数,其包含在math.h头文件里,因为任意两边之差当然是大的减小的是非负的
但是我们看这里既要两边之差又要两边之和是多余的,因为a+b>c就能推出c-b<a或c-a<b,所以原则上你的源代码就行了,如果非要加上那也不是不行,如上就可以了本回答被提问者采纳 参考技术B #include <stdio.h>
#include <math.h>
...
if (fabs(a-b)<c && fabs(a-c)<b && fabs(b-c)<a)
printf("可以构成三角形。\\n");
printf("周长 = %f",sum = a+b+c);
else
printf("不能构成三角形。\\n");
... 参考技术C 增加一个头文件math.h,即
# include <math.h>
然后加一句if,并在里面用fabs这个对浮点数取绝对值函数。
if (fabs(a-b) < c && fabs(a-c) < b && fabs(b-c) < a) 参考技术D && a-b>c && b-a>c
以此类推
判断三角形的类型并求其面积
一、问题描述
根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型。
二、算法思想
首先判断其两条边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积;否则不能构成三角形。
①从键盘输入三角形的三条边
②判断两边之和是否大于第三条边
③若条件成立,则可以构成一个三角形,计算其面积。已知三角形的三个边长,计算其面积计算方法:
A、海伦公式。已知三角形三边长分别为a、b、c,则它的面积为:S= p(p−a)(p−b)(p−c) ,其中p为半周长,即:p= (a+b+c)/2
B、先根据余弦定理求出某个交的余弦值求正弦值,最后S=1/2*ab*sinC
④判断三角形类型。首先判断其是否三边相等,条件成立则为等边三角形;否则判断其是否有两边相等,条件成立则为等腰三角形;否则判断是否有两边的平方和等于第三条边的平方,条件成立则为直角三角形;否则判断其为普通三角形。
补充:其实输入三条边只要大于0且都相等,那么一定是等边三角形;如果有两条边相等,如a==b,那么只要测试a+b和c的关系即可(因为a+b>c,a=b,c>0,那么a+c>b和b+c>a是一定成立的)。显然这样程序效率可以提高,但是同时也损失了程序结构的明确性以及测试的简易性,所以不建议这样走捷径。
三、程序代码
#include <stdio.h> #include <math.h> int main(){ int a, b, c; float s, area; printf("分别输入三角形的三条边,以空格隔开:\\n"); scanf("%d %d %d", &a, &b, &c); if(a+b>c && a+c>b && b+c>a){ s = (float)(a+b+c)/2;//去掉这个float,可能会有面积不对的情况 area = (float)sqrt(s * (s-a) * (s-b) * (s-c)); //面积保留小数点后三位 printf("三角形的面积为:%.3f\\n", area); if(a==b && a==c){ printf("该三角形是等边三角形!\\n"); } else if(a==b || a==c || b==c){ printf("该三角形是等腰三角形!\\n"); } else if( (a*a+b*b == c*c) || (a*a+c*c == b*b) || (b*b+c*c == a*a)){ printf("该三角形是直角三角形!\\n"); } else{ printf("该三角形是普通三角形!\\n"); } } else{ printf("这三条边无法构成三角形!\\n"); } return 0; }
四、运行结果
以上是关于c语言代码,输入三条边看能不能构成三角形的主要内容,如果未能解决你的问题,请参考以下文章
c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。
c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。