使用c语言编写程序,读入n(n<=10),再读入同一平面内一多边形连续n个顶点的坐标(实数),输出该多边形的面积(保留小数点后2位)。
时间: 2024-01-13 14:02:20 浏览: 99
用C语言编写程序:N元一次方程组的解.pdf
```
#include <stdio.h>
#include <math.h>
#define MAX_N 10
int main() {
int n;
double x[MAX_N], y[MAX_N], area = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%lf %lf", &x[i], &y[i]);
}
for (int i = 0; i < n; i++) {
int j = (i + 1) % n;
area += x[i] * y[j] - x[j] * y[i];
}
area = fabs(area) / 2;
printf("%.2lf\n", area);
return 0;
}
```
注释:
1. 定义常量 `MAX_N` 表示最多顶点数为 10。
2. 定义数组 `x` 存储顶点的横坐标,数组 `y` 存储顶点的纵坐标。
3. 读入多边形的顶点数 `n`,并依次读入每个顶点的坐标。
4. 计算多边形的面积。根据叉积的性质,多边形的面积等于所有相邻两个顶点构成的三角形面积之和。设当前计算的两个顶点为 `i` 和 `j`,则它们构成的三角形面积为 $S_{ij}=\frac{1}{2}(x_iy_j-x_jy_i)$。遍历每对相邻的顶点,将它们构成的三角形面积累加起来即可得到多边形的面积。
5. 由于计算的面积可能为负数,需要取绝对值。
6. 输出多边形的面积,保留小数点后两位。
阅读全文