运用 Java 程序 输入三角形的三条边,计算三角形的面积并输出
时间: 2024-03-23 11:36:03 浏览: 149
好的,以下是 Java 程序的代码:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入三角形的三条边:");
double a = input.nextDouble();
double b = input.nextDouble();
double c = input.nextDouble();
double p = (a + b + c) / 2; // 计算半周长
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c)); // 计算面积
System.out.println("三角形的面积为:" + area);
}
}
```
运行程序后,输入三角形的三条边,程序会自动计算出三角形的面积并输出。注意,如果输入的三条边无法构成三角形,则程序会输出 NaN。
相关问题
java输入三角形的三条边,计算三角形的面积并输出
在Java中,计算三角形面积通常需要使用海伦公式(Heron's formula),当给定三边a、b和c时,可以按照以下步骤计算:
1. 首先,计算半周长p,它等于(a+b+c) / 2。
2. 然后,利用公式sqrt[p*(p-a)*(p-b)*(p-c)]得到三角形的面积,其中sqrt表示开平方根。
以下是简单的Java代码示例:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入三角形的三条边长:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
// 检查输入是否能构成有效的三角形(任意两边之和大于第三边)
if (a + b > c && a + c > b && b + c > a) {
double p = (a + b + c) / 2;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.printf("三角形的面积为: %.2f", area); // 输出保留两位小数
} else {
System.out.println("输入的边长无法构成有效三角形!");
}
scanner.close();
}
}
```
在这个程序里,用户会被提示输入三角形的三条边长,然后计算并输出面积。如果输入的边长无法形成一个三角形,程序会给出错误信息。
java输入三角形的三条边,求出三角形的面积。当输入的三条边不能组成一个三角形的时候,请抛出一个异常
可以海龙公式(Heron's formula)来计算三角形面积,公式如下:
$$
S=\sqrt{p(p-a)(p-b)(p-c)}
$$
其中,$p$ 是半周长,也就是三条边的和的一半:
$$
p = \frac{a+b+c}{2}
$$
如果输入的三条边不能组成一个三角形,那么其中必有一条边的长度大于等于另外两条边的长度之和。因此,我们可以在计算海龙公式前先判断输入的三条边是否能组成一个三角形,如果不能,就抛出一个异常。
下面是一个使用 Java 实现的示例代码:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入三角形的三条边:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
try {
double area = getTriangleArea(a, b, c);
System.out.println("三角形的面积为:" + area);
} catch (IllegalArgumentException e) {
System.out.println("输入的三条边不能组成一个三角形!");
}
}
public static double getTriangleArea(double a, double b, double c) throws IllegalArgumentException {
if (a >= b + c || b >= a + c || c >= a + b) {
throw new IllegalArgumentException("输入的三条边不能组成一个三角形!");
}
double p = (a + b + c) / 2;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
return area;
}
}
```
在上面的代码中,我们使用了 `try-catch` 语句来捕获可能抛出的异常。如果捕获到了异常,就会输出一条错误提示信息。如果没有捕获到异常,就会计算三角形的面积并输出。
阅读全文