java求三角形的面积和周长 问题

程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area和周长perimeter;
否则,输出“These sides do not correspond to a validtriangle”。
在一个三角形中,任意两边之和大于第三边。
三角形的面积计算公式:
aere*area= s(s-a)(s-b)(s-c)
其中:s = (a+b+c)/2
输出代码:
System.out.println("area="+area+";perimeter="+perimeter);
System.out.println("Thesesides do not correspond to a valid triangle");

例:括号内是说明
输入
2 (repeat=2)
5 5 3
1 1 4
输出
area=7.154544;perimeter=13.0
Thesesides do not correspond to a valid triangle

importjava.util.Scanner;
publicclass Test30003 {
public static void main(String[] args){
int ri, repeat;
float a, b, c, area, perimeter, s;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
a=in.nextFloat();
b=in.nextFloat();
c=in.nextFloat();
/*------------------*/
if(a+b>c&&a+c>b&&b+c>a)
{
perimeter=a+b+c;
s = (a+b+c)/2.0f;
area =(float)Math.sqrt(s*(s-a)*(s-b)*(s-c)) ;
System.out.println("area="+area+";perimeter="+perimeter);
}
else
System.out.println("These sides do notcorrespond to a valid triangle");
}
}
}
如上程序中 其中:s = (a+b+c)/2 这句代表什么呢?
s = (a+b+c)/2.0f;这句又与 “area =(float)Math.sqrt(s*(s-a)*(s-b)*(s-c)) ;”有何关系?

三角形面积计算公式:
s=(a+b+c)/2 即三角形周长一半
area=sqrt(s(s-a)(s-b)(s-c)) 即三角形面积。追问

s=(a+b+c)/2 即三角形周长一半?取的是什么值呢?和面积有什么关系

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-24
这个就是一个通用的三角形面积求解公式,适用于任何三角形,不像我们一般的公式还要知道三角形的高,可以直接通过三条边求三角形的面积
相似回答