解前的判断(类比解后的判断,验根)
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方程的根。
由键盘输入任意值
a
,b
,c
,需要在程序中进行判断:如果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*********/ }