用Java编写一个程序如下:

读取用户任意输入的3个非零数值,判断它们是否可以作为“直角三角形”的3条边,如果可以,则打印打印这3条边,计算并显示这个三角形的面积。... 读取用户任意输入的3个非零数值,判断它们是否可以作为“直角三角形”的3条边,如果可以,则打印打印这3条边,计算并显示这个三角形的面积。 展开
 我来答
flyingFish211
2011-03-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.2亿
展开全部
三边数值之间用用空格隔开

import java.util.Scanner;

public class Triple {

public static void main(String[] args) {

double[] numbers = getNumbersFromInput();

boolean isValidateTriple = valieDateNums(numbers[0], numbers[1], numbers[2]);

if(isValidateTriple){
System.out.println("The sides for the triple are: " + numbers[0] + "," + numbers[1] + "," + numbers[2]);
double p = (numbers[0] + numbers[1] + numbers[2]) /2;
double s= Math.sqrt(p*(p-numbers[0])*(p-numbers[1])*(p-numbers[2]));
System.out.println("The area for this triple is: " + s);
}else{
System.out.println("Can't make a triple with these 3 numbers: " + numbers[0] + "," + numbers[1] + "," + numbers[2]);
}

}

private static boolean valieDateNums(double d, double e, double f) {

if(d <= 0 || e <= 0|| f <=0){
return false;
}

return d+e > f && d + f > e && f +e > d;
}

private static double[] getNumbersFromInput() {

double[] numbers = new double[3];

System.out.println("Please input 3 digits, separate with space.");

Scanner scanner = new Scanner(System.in);

String[] nums = scanner.nextLine().split("\\s+");

for(int i = 0; i < nums.length; i++){
numbers[i] = Double.parseDouble(nums[i].trim());
}

return numbers;
}
}

---------------------testing 1
Please input 3 digits, separate with space.
3 4 5
The sides for the triple are: 3.0,4.0,5.0
The area for this triple is: 6.0
--------------testing 2
Please input 3 digits, separate with space.
1 2 3
Can't make a triple with these 3 numbers: 1.0,2.0,3.0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式