已知三角形的三条边长a、b、c,求三角形的面积。三角形的面积可以根据海伦公式来计算,这里S代表周长的一半,Area代表三角形的面积:
S=(A+B+C)/2
Area=(S(S−a)(S−b)(S−c))
求一个数的平方根需要用库函数sqrt(x)。参数x可以是整数或者浮点数,函数返回值是一个浮点数。在处理浮点数的时候,建议使用双精度浮点型(double型)变量,
注意:为了使用该函数,需要在main函数之前加上预处理语句:
#include <math.h>
%lf的默认输出为6位小数,如果想要输出3为小数,则应为%.3lf。
输入格式:
为三个用空格分隔的正整数a、b、c,代表三角形的三边长度。
输出格式:
只有一行。当输入的三条边a、b、c可以构成三角形时(即两条边的长度和大于第三条边的长度),输出三角形的面积,输出结果保留3位小数,假如a=5,b=12,c=13,则输出“30.000”;当a、b、c三条边无法构成三角形时,则输出“The edges cannot make up of a triangle.”。测试用例保证运算中用到的整数可以用int型存储,小数可以用double型存储。
输入样例:
5 12 13
输出样例:
30.000
代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
double s,Area;
s = (a+b+c)/2;
Area = sqrt(s*(s-a)*(s-b)*(s-c));
if((a+b>c) &&(b+c>a)&&(a+c>b))
printf("%.3lf",Area);
else
printf("The edges cannot make up of a triangle.");
return 0;
}
1,判断三个数能否组成三角形:
就是两边之和大于第三边
(a+b>c) &&(b+c>a)&&(a+c>b)
2,函数sqrt
作用:求一个数的平方根,Returns the square root of x.
Value whose square root is computed.
If the argument is negative, a domain error occurs.
返回值:浮点类型
需要引用#include<stdio.h>
Header <math.h> provides a type-generic macro version of this function.