解前的判断(类比解后的判断,验根)

notice:

  • 先判断是否可以构成三角形,即任意两边之和大于第三边,可以构成三角形情况下再计算,可以增加严谨性,提高程序健壮性;
  • 若不能构成三角形,则输出“无法构成三角形”

要求:

输入为三角形的三边(double,保证输入的数据能构成三角形),

请输出三角形的面积,并保留2位小数。

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

求ax2+bx+c=0方程的根。

由键盘输入任意值abc,需要在程序中进行判断:

如果a=0,输出错误提示系数a不能为零

如果b2−4ac<0,输出方程无实根的信息;

如果b2−4ac>=0,计算并输出方程的两个实根。

测试说明:

测试输入:2 3 4。预期输出:方程无实根

#include <stdio.h>
#include<math.h>
int main()
{
	/*********begin*********/
    double a,b,c;
    scanf("%lf %lf %lf",&a,&b,&c);
    double t=0;
    if(a != 0)
    {
        t=b*b - 4 * a *c;
        if(t>=0)
        {
            double x1=(-b-sqrt(t))/(2*a);
            double x2=(-b+sqrt(t))/(2*a);
            printf("x1=%.2lf x2=%.2lf",x2,x1);
        }
        else printf("方程无实根");
    }
    else printf("系数a不能为零");
	/*********end*********/
}

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务