C语言给出三角形三边长,求三角形面积

求大神指导,哪里出错了!谢谢!

#include

#include

int main()

{

float a,b,c,h,s;

scanf("%f %f %f",&a,&b,&c);

h=(a+b+c)/2;

s=sqrt(h*(h-a)*(h-b)*(h-c));

printf("%g\n",s);

return 0;

}

    C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

    它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

    它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

    C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-13

一、 数学基础:

已知三边和计算三角形面积,需要用到海伦公式:

即p=(a+b+c)/2

二、 算法:

输入三个边长,套用海伦公式计算面积,并输出。 

可以先判断是否可以构成三角形,即任意两边之和大于第三边,可以构成三角形情况下再计算,可以增加严谨性,提高程序健壮性。 

三、 代码:

#include <stdio.h>
#include <math.h>
int main()
{
    double a,b,c,p,s;
    scanf("%lf%lf%lf",&a,&b,&c);
    if(a+b>c && a+c>b && b+c>a) //判断是否可以构成三角形。
    {
        p=(a+b+c)/2;//计算半周长
        s=sqrt(p*(p-a)*(p-b)*(p-c));//套用海伦公式,计算面积
        printf("面积为%lf\n", s);//输出结果
    }
    else printf("无法构成三角形\n");//输入不合法,提示。
    return 0;
}

四、 注意事项:

用到开平方函数sqrt,需要包含math.h。

如果是gcc编译器,需要在编译时加入-lm 引入数学库。 否则会编译错误。

第2个回答  2015-11-29
scanf("%lf%lf%lf",&a,&b,&c);

追问

lf指?

追答

%lf对应double类型
%f对应float类型

追问

可是修改后。。输入的abc为3 4 5,出来的结果是无法构成一个三角形QAQ

追答

输入样例

追问

成了😂😂为啥

本回答被提问者采纳
第3个回答  2015-11-29
有错误代码吗?
可以尝试将double改为float型试试
相似回答