编写java程序【问题描述】给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积。 【输入形式】从标准输入读取顶点坐标。格式为:第一行是点的个数N(3<N<15),后面紧接着N行,每行两个数字 (由空格隔开),分别表示该点的X、Y坐标(0<X,Y<32767)。所有点的坐标互不相同,且按顺时针次序给出。 输入数据确保该多边形是一个凸多边形。 【输出形式】向标准输出打印一个浮点数,是该多边形的面积。该浮点数保留两位小数。 【输入样例】 4 3 3 3 0 1 0 1 2 【输出样例】 5.00 【样例说明】输入数据表示了如图所示的四边形。其面积为5.00。
时间: 2024-03-04 17:49:45 浏览: 83
以下是Java程序的实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] x = new int[n];
int[] y = new int[n];
for (int i = 0; i < n; i++) {
x[i] = scanner.nextInt();
y[i] = scanner.nextInt();
}
double area = 0;
for (int i = 0; i < n; i++) {
int j = (i + 1) % n;
area += x[i] * y[j] - x[j] * y[i];
}
area /= 2;
System.out.printf("%.2f", Math.abs(area));
}
}
```
该程序首先读入顶点的个数和坐标,并用两个数组 `x` 和 `y` 分别存储各顶点的横纵坐标。接下来,程序使用叉积法计算该凸多边形的面积,并用 `Math.abs()` 方法取绝对值,最后用 `System.out.printf()` 方法输出结果。
阅读全文