CExercise_05_1函数_2海伦公式求三角形面积
题目:
键盘录入三个边长(带小数),然后用海伦公式计算三角形的面积(如果它确实是一个三角形的话)
海伦公式求三角形面积:
要求基于下列两个函数完成这个编程题:
// 判断abc是否可以组成三角形,true表示可以组成,false表示不可以 bool is_triangle(int a, int b,
int c);// 利用海伦公式在abc可以构成三角形的前提下,求三角形面积 double get_area(int a, int b, int c);
注意:不要忘记使用sqrt函数要包含头文件<math.h>
关键点
注意细节 除以2.0,整个式子是double类型的,这样能精确计算.
分析:
:声明和定义在main()之前可以一步到位.
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#include <math.h>/*
海伦公式计算三角形的面积
*///判断abc是否可以组成三角形,true可,false假
bool is_triangle(int a, int b, int c);//利用海伦公式在abc可以构成三角形的前提下,求三角形面积
double get_area(int a, int b, int c);bool is_triangle(int a, int b, int c) {//任意两边之和大于第三边return (a + b > c) && (a + c > b) && (b + c > a);
}double get_area(int a, int b, int c) {//错误的: double s = (a+ b + c)/2; //计算半周长double s = (a+ b + c)/2.0; //计算半周长return sqrt(s * (s - a) * (s - b) * (s - c));//使用海伦公式计算面积
}int main(void) {int a, b, c;//三角形的三边printf("请输入三角形的三边:");scanf(" %d%d%d", &a, &b, &c);if (!is_triangle(a, b, c)) {//不能组成三角形printf("Error: 无法组成三角形!\n");return -1;}//可以组成三角形,于是计算三角形面积double area = get_area(a, b, c);printf("三角形面积是: %.2lf\n", area);return 0;
}
解决方案总结:
: