C语言 输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积和周长。

输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积和周长。保留两位小数,否则输出这些边不能构成三角形。我的程序是:#include<stdio.h>#incl... 输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积和周长。 保留两位小数,否则输出 这些边不能构成三角形。
我的程序是:
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,s,l,area;
scanf("%f %f %f",&a,&b,&c);
if((a+b>c)&&(b+c>a)&&(a+c>b))
{
l=a+b+c;
s=l/2;
area=sqrt(s*(s-a)(s-b)(s-c));
printf("面积为%.2f 周长为%.2f\n",area,l);
}
else printf("这些边不能构成三角形\n");
return o;
}

报错是:term does not evaluate to a function,在area=sqrt(s*(s-a)(s-b)(s-c));这行
怎么改~~
有朋友指出s*(s-a)(s-b)(s-c)括号之间的*木有打,加上了之后可以运行,但是输出的东西不对
比如 输入 3 4 5,输出的却是不能构成,这又是哪里出错了捏
展开
 我来答
风若远去何人留
2017-04-17 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450104
专业C/C++软件开发

向TA提问 私信TA
展开全部

一、算法分析:

1、 输入三条边,a,b,c;

2、 判断是否可以构成三角形。 可以利用三角形两边之和必然大于第三边的定理进行判断;

3、 对于可以构成三角形的,三边相加求周长,并利用海伦公式求面积;

海伦公式为

式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。

4、 输出周长和面积。 

二、参考代码:

#include<stdio.h>
#include <math.h>
int main()
{
    double a,b,c,C,S,p;
    scanf("%lf%lf%lf",&a,&b,&c);//输入三条边。
    if(a+b>c && b+c>a && a+c>b)//可以构成三角形。
    {
        C=a+b+c;//计算周长。
        p=C/2;//计算半周长。
        S=sqrt(p*(p-a)*(p-b)*(p-c));//套用海伦公式,计算面积。
        printf("周长=%lf\n面积=%lf\n", C, S);//输出结果。 
    }
    else
        printf("无法构成三角形\n");//不能构成三角形,输出提示。 
        
    return 0;
}
木听白
2018-03-31 · TA获得超过2619个赞
知道小有建树答主
回答量:25
采纳率:0%
帮助的人:3349
展开全部

以下答案仅供参考:

  1. 输入三条边,a,b,c;

  2. 判断是否可以构成三角形。 可以利用三角形两边之和必然大于第三边的定理进行判断;

  3. 对于可以构成三角形的,三边相加求周长,并利用海伦公式求面积;

  4. 海伦公式为

    式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。

  5. 输出周长和面积

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
于是我呵呵
2014-12-28 · 超过21用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:33.8万
展开全部
....................s*(s-a)(s-b)(s-c)各个括号之间的*号怎么不写。。。。
追问
忘记了。。
可是加了之后 可以运行了,但是输入3 4 5,输出的是不能构成-,-
追答
alleria@cxm:~/Codes/temp$ gcc test.c -o test -lm
alleria@cxm:~/Codes/temp$ ./test
3 4 5
面积为6.00 周长为12.00
无能为力,我不信还尝试跑了下,您的系统必须炸天
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无有福黎溪
2020-01-26 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:695万
展开全部
#include
#include
int
main()
{
double
a,b,c,s,c,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
c=a+b+c;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\tc=%f\n",a,b,c);
printf("area=%f\n",area);
printf("c=%f\n",c);
return
0;
}
a,b,c可以改,但两边之和大于第三边,两边之差小于第三边是不能丢的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式