1333: 三角形面积(已知三边成三角)
Memory Limit:12 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:612
Solved:282
Description
不允许普通用户打印题目,请教师登录后使用。如有疑问请联系管理员!
Input
3个非负实数a、b、c,分别表示三角形的三条边。输入数据之间用空格分隔。输入数据已经确保a,b,c能够构成三角形。
Output
三角形的面积。
Sample Input Copy
3 4 5
Sample Output Copy
6.000000
HINT
1:利用“海伦-秦九韶公式”计算三角形面积:△=s(s-a)(s-b)(s-c)的开平方。其中s=(a+b+c)/2。
2:注意数学公式的形式与C语言表达此公式的不同之处。
例如:
(1)在数学公式中的“乘法”运算符经常省略不写,但是在程序必须明确写出何处是乘法运算。例如上式应该写成s*(s-a)*(s-b)*(s-c)。
(2)如果变量a,b,c是整数时,计算s的时候一定注意数据类型的转换。应该写成s=(a+b+c)/2.0或者写成 s=(a+b+c)/(double)(2)
3:对于带小数点的数据,由于float型是单精度的,精度较小,所以必须使用double型(双精度型)才能保证精度。对于double型的变量进行输入和输出,注意其格式控制符为%lf。
举例如下:
double a; //定义双精度变量a
scanf("%lf",&a);//输入数据(可带小数点)的数据到变量a
printf("%.4lf",a); //输出数据a,保留4位小数。
2:注意数学公式的形式与C语言表达此公式的不同之处。
例如:
(1)在数学公式中的“乘法”运算符经常省略不写,但是在程序必须明确写出何处是乘法运算。例如上式应该写成s*(s-a)*(s-b)*(s-c)。
(2)如果变量a,b,c是整数时,计算s的时候一定注意数据类型的转换。应该写成s=(a+b+c)/2.0或者写成 s=(a+b+c)/(double)(2)
3:对于带小数点的数据,由于float型是单精度的,精度较小,所以必须使用double型(双精度型)才能保证精度。对于double型的变量进行输入和输出,注意其格式控制符为%lf。
举例如下:
double a; //定义双精度变量a
scanf("%lf",&a);//输入数据(可带小数点)的数据到变量a
printf("%.4lf",a); //输出数据a,保留4位小数。
4:求平方根可利用数学函数库中的现成函数,求根号下x,可以用sqrt(x) 来计算。