编写一个已知三条边求三角形面积的函数area(),在main()函数中输入三边 长,并判断是否构成三角形,在构成三角形的情况下,调用area()函数求其面积并输出。

编写一个已知三条边求三角形面积的函数area(),在main()函数中输入三边
长,并判断是否构成三角形,在构成三角形的情况下,调用area()函数求其面积并输出。

构成三角形的条件是任意两边长之和大于另一边长

#include <stdio.h>
#include <math.h>
double area(double a ,double b,double c)
{
    double s = (a+b+c)/2;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}
int main()
{
    double a,b,c;
    scanf("%lf%lf%lf",&a,&b,&c);
    if(a+b>c && a+c>b && b+c>a)
        printf("面积为:%lf",area(a,b,c));
    else
        printf("不能构成三角形");
}

    

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是一个C语言程序,实现了已知三条边求三角形面积的函数area()。在main()函数中,用户输入三条边长,程序判断是否构成三角形,如果是,则调用area()函数计算其面积并输出。

#include <stdio.h>
#include <math.h>

float area(float a, float b, float c);

int main()
{
    float a, b, c;

    printf("请输入三角形的三条边长:\n");
    scanf("%f %f %f", &a, &b, &c);

    // 判断是否构成三角形
    if (a + b > c && a + c > b && b + c > a) {
        float s = area(a, b, c);
        printf("三角形的面积为:%.2f\n", s);
    } else {
        printf("无法构成三角形!\n");
    }

    return 0;
}

// 计算三角形的面积
float area(float a, float b, float c)
{
    float s, area;
    s = (a + b + c) / 2.0;
    area = sqrt(s * (s - a) * (s - b) * (s - c));
    return area;
}

在上述程序中,area()函数使用海伦公式计算三角形面积,根据三角形三边长a、b、c,计算s=(a+b+c)/2,再根据海伦公式,面积area=sqrt(s * (s - a) * (s - b) * (s - c))。

程序中的判断函数使用了三角形成立的条件,即任意两条边之和大于第三条边。如果不满足该条件,则无法构成三角形。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    问题:

    请编写一个程序,实现根据输入的三条边长计算三角形的面积。程序需要包括以下功能:

    1. 编写函数 area(),输入三角形三边长度,并计算其面积;
    2. 在主函数 main() 中,输入三角形三边长度,并判断是否构成三角形;
    3. 如果构成三角形,则调用 area() 函数计算并输出其面积;
    4. 如果不构成三角形,输出相应提示信息。

    请您帮我优化以上问题,以便 Chatbot 能够更好地理解我的问题。

    解决方案:

    1. 编写函数 area()

    面积计算公式为:$$ S = \sqrt{p \times (p - a) \times (p - b) \times (p - c)}$$ 其中 $p$ 为半周长,$a,b,c$ 为三角形的三条边长。

    根据公式,可以编写以下函数计算三角形的面积:

    def area(a,b,c):
        p = (a+b+c)/2
        S = (p*(p-a)*(p-b)*(p-c)) ** 0.5 # ** 表示次方
        return S
    
    1. 在主函数 main() 中,输入三角形三边长度,并判断是否构成三角形
    def main():
        a = float(input("请输入三角形第一条边长:"))
        b = float(input("请输入三角形第二条边长:"))
        c = float(input("请输入三角形第三条边长:"))
        if a+b>c and a+c>b and b+c>a: # 判断是否构成三角形
            S = area(a,b,c) # 调用 area() 函数计算面积 
            print("该三角形的面积为:",S)
        else:
            print("这不是一个三角形")
    

    以上就是完整的程序,可以将上述代码整合起来,编写完整的程序。代码如下:

    # 计算三角形面积的函数
    def area(a,b,c):
        p = (a+b+c)/2
        S = (p*(p-a)*(p-b)*(p-c)) ** 0.5 # ** 表示次方
        return S
    
    # 主函数
    def main():
        a = float(input("请输入三角形第一条边长:"))
        b = float(input("请输入三角形第二条边长:"))
        c = float(input("请输入三角形第三条边长:"))
        if a+b>c and a+c>b and b+c>a: # 判断是否构成三角形
            S = area(a,b,c) # 调用 area() 函数计算面积 
            print("该三角形的面积为:",S)
        else:
            print("这不是一个三角形")
    
    # 调用主函数
    main()
    

    以上就是完整程序的解决方案,具有良好的可读性和易理解性。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^