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类型的,这样能精确计算.
分析:
:
代码
#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;
}
解决方案总结:
: