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;

参考技术A 代码可以写成同一个if里
也可以写成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语言编程实例14

c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。

c语言编写程序:输入三角形的三条边,判断它们能否构成三角形,若能则指出何种三角形。

如何用C语言编程序:输入三个数,判断是不是构成三角形

C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。

C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。