c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

c语言怎么求三角形的面积

刘姿婷 2023-07-09编程经验
第一段:概述三角形面积的数学公式及程序实现思路计算三角形面积是初学者学习编程时经常遇到的问题。三角形面积的数学公式为:面积=(底边长×高)÷2。简单来说,三角形面积等于底边长与高的乘积再除以2。在程序实现上,需要用到输

第一段: 概述三角形面积的数学公式及程序实现思路

计算三角形面积是初学者学习编程时经常遇到的问题。三角形面积的数学公式为:面积=(底边长×高)÷2。简单来说,三角形面积等于底边长与高的乘积再除以2。在程序实现上,需要用到输入输出函数scanf和printf,以及数学函数库中的abs函数。我们使用C语言编写程序求解三角形面积,首先需要定义三角形的三边长。

#include 
#include 
#include 

int main()
{
    float a,b,c,s,area;//a、b、c分别为三角形的三边长,s为半周长,area为三角形面积。
    printf("请输入三角形的三边长:\n");
    scanf("%f%f%f",&a,&b,&c);//输入三边长

    while(a+b<=c || a+c<=b || b+c<=a)//判断是否构成三角形
    {
        printf("无法构成三角形,请重新输入:\n");
        scanf("%f%f%f",&a,&b,&c);//重新输入三边长
    }

    s=(a+b+c)/2;//计算半周长
    area=sqrt(s*(s-a)*(s-b)*(s-c));//计算三角形面积
    printf("三角形面积为:%f\n",area);//输出三角形面积
    return 0;
}

第二段: 如何保证用户输入的三边长构成有效的三角形

在上述程序中,我们通过while循环判断用户输入的三边长是否能够构成有效的三角形。三角形的任意两边之和必须大于第三边,即a+b>c、a+c>b、b+c>a。如果用户输入的三边长无法构成三角形,那么程序会输出“无法构成三角形,请重新输入”,并要求用户重新输入三边长。

while(a+b<=c || a+c<=b || b+c<=a)//判断是否构成三角形
{
    printf("无法构成三角形,请重新输入:\n");
    scanf("%f%f%f",&a,&b,&c);//重新输入三边长
}

第三段: 如何避免输入无效的三角形边长

在实际编写程序时,我们需要进一步考虑用户输入的三角形边长是否符合实际情况。例如,三角形的边长应该为正数,而不能为负数或零。我们可以在输入边长时,加入一个循环,要求用户输入不小于零的值。

#include 
#include 
#include 

int main()
{
    float a,b,c,s,area;//a、b、c分别为三角形的三边长,s为半周长,area为三角形面积。
    printf("请输入三角形的三边长:\n");
    scanf("%f%f%f",&a,&b,&c);//输入三边长

    while(a<=0 || b<=0 || c<=0)//判断边长是否大于零
    {
        printf("边长必须为正数,请重新输入:\n");
        scanf("%f%f%f",&a,&b,&c);//重新输入三边长
    }

    while(a+b<=c || a+c<=b || b+c<=a)//判断是否构成三角形
    {
        printf("无法构成三角形,请重新输入:\n");
        scanf("%f%f%f",&a,&b,&c);//重新输入三边长
    }

    s=(a+b+c)/2;//计算半周长
    area=sqrt(s*(s-a)*(s-b)*(s-c));//计算三角形面积
    printf("三角形面积为:%f\n",area);//输出三角形面积
    return 0;
}

第四段: 怎样可以完善程序,让用户输入更友好

上述程序虽然能够求解三角形面积,并能够判断用户输入的三边长是否有效。但是程序运行时并不够友好,需要用户手动输入每个数值。如果我们加入一些提示和判断语句,就可以增加程序的易用性。

#include 
#include 
#include 

int main()
{
    float a,b,c,s,area;//a、b、c分别为三角形的三边长,s为半周长,area为三角形面积。
    int flag=0;//flag表示用户是否需要重新输入三角形边长,1表示需要重新输入,0表示不需要。
    printf("欢迎使用三角形面积计算程序!\n");

    do
    {
        flag=0;//每次循环开始前将flag变量赋为0
        printf("请输入三角形的三边长:\n");
        scanf("%f%f%f",&a,&b,&c);//输入三边长

        if(a<=0 || b<=0 || c<=0)//判断边长是否大于零
        {
            printf("边长必须为正数,请重新输入:\n");
            flag=1;//如果边长不合法需重新输入,将flag赋为1
        }

        if(a+b<=c || a+c<=b || b+c<=a)//判断是否构成三角形
        {
            printf("无法构成三角形,请重新输入:\n");
            flag=1;//如果无法构成三角形需重新输入,将flag赋为1
        }

    }while(flag==1);//如果flag==1,需要重新输入,重复循环

    s=(a+b+c)/2;//计算半周长
    area=sqrt(s*(s-a)*(s-b)*(s-c));//计算三角形面积
    printf("三角形面积为:%f\n",area);//输出三角形面积

    printf("感谢您使用三角形面积计算程序!\n");
    return 0;
}

文章评论