用c语言编写选择,循环,数组至少两个编写 算方位角闭合差 再算闭合差容许值 然后选择比较看有没有合格
时间: 2024-05-10 22:18:05 浏览: 4
以下是一个示例代码,用于计算方位角闭合差及其容许值,并进行比较判断是否合格:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main() {
int n; // 角点数
double sx, sy, ex, ey, dx, dy, angle, azimuth; // 变量定义
// 输入角点数
printf("请输入角点数:");
scanf("%d", &n);
// 输入起点坐标
printf("请输入起点坐标(x,y):");
scanf("%lf,%lf", &sx, &sy);
// 初始化变量
ex = sx;
ey = sy;
angle = 0;
// 循环读入各个角点坐标并计算方位角闭合差
for (int i = 0; i < n; i++) {
printf("请输入第%d个角点坐标(x,y):", i + 1);
scanf("%lf,%lf", &dx, &dy);
// 计算方位角
azimuth = atan2(dy - ey, dx - ex) * 180 / PI;
if (azimuth < 0) {
azimuth += 360;
}
// 更新变量
angle += azimuth;
ex = dx;
ey = dy;
}
// 计算最后一条边的方位角
azimuth = atan2(sy - ey, sx - ex) * 180 / PI;
if (azimuth < 0) {
azimuth += 360;
}
// 计算方位角闭合差
angle += azimuth - n * 180;
printf("方位角闭合差为:%.6f\n", angle);
// 计算闭合差容许值
double allowance = 2 * sqrt(n);
printf("闭合差容许值为:%.6f\n", allowance);
// 判断是否合格
if (fabs(angle) < allowance) {
printf("该多边形符合要求。\n");
} else {
printf("该多边形不符合要求。\n");
}
return 0;
}
```
该程序中使用了选择语句(if)、循环语句(for)和数组(未在示例中使用)。用户输入角点数和各个角点的坐标后,程序计算出方位角闭合差及其容许值,并进行比较判断是否符合要求。