
用Java编写一个程序如下:
读取用户任意输入的3个非零数值,判断它们是否可以作为“直角三角形”的3条边,如果可以,则打印打印这3条边,计算并显示这个三角形的面积。...
读取用户任意输入的3个非零数值,判断它们是否可以作为“直角三角形”的3条边,如果可以,则打印打印这3条边,计算并显示这个三角形的面积。
展开
展开全部
三边数值之间用用空格隔开
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询