注册 登录
编程论坛 C++教室

这是一道求三角形面积的题目,但是,我算出来的数是错误的,以我现在的能力实在是无法看出哪里错了,希望专家们帮我看看,提出错误,感谢!!!

丁丁v 发布于 2012-07-25 09:41, 501 次点击
这是一道求三角形面积的题目,但是,我算出来的数是错误的,以我现在的能力实在是无法看出哪里错了,希望专家们帮我看看,提出错误,感谢!!!
#include <stdio.h>

void main()
{
float a,b,c,area,s;
    scanf("%f %f %f",&a,&b,&c);
   
    s=(a+b+c)/2;
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("area is %f /n",area);
}
6 回复
#2
我乃新手2012-07-25 09:49
首先你要判断一下你输入的是不是三角形,即要满足任意的两边之和大于第三边!!!你的输出结果就是这样算的。
int a,b,c;//三边
if(a+b>c&&a+c>b&&b+c>a)//判断条件
#3
丁丁v2012-07-25 10:44
回复 楼主 丁丁v
是不是这样写啊?专家,但是我改了之后还是输出的数太大了!是错的!!帮帮忙,再帮我看看吧!
#include <stdio.h>

void main()
{
float a,b,c,area,s;
scanf("%f %f %f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)
{

   
    s=(a+b+c)/2;
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("area is %f /n",area);
}

}
#4
有容就大2012-07-25 11:22
VS下写的 貌似没问题
程序代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void)
{
    float a, b, c, area, s;
    scanf("%f %f %f", &a ,&b, &c);
    if (a + b > c && a + c > b && b + c > a)
    {
        s= (a + b + c) / 2;
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("area is %f \n",area);
    }
    else
        printf("The input is error!\n");
    system("pause");
    return 0;
}
输入 3 4 5 输出area is 6.000000

#5
peng412012-07-25 13:09
没有加math.h
#6
单纯的飞鱼2012-07-25 17:05
没#include <math.h>
#7
jarryjsq2012-07-26 16:39
少了math.h
并且还要判断你输入的边能不能凑成一个三角形。
1