用c语言编程如图,有一块玉米地,位于一条东西向公路的北侧,南北向公路的东侧。第一个顶点距离南北路750米,东西路550米;第二个顶点距离南北路850米,东西路50米;第三个顶点距离南北路50米,东西路250;第四个顶点距离南北路150米,东西路450米。该块地种植玉米,收获的总产量为120吨,求玉米每亩产量为多少千克?要求编写程序求解该问题。  编程要求: 程序中至少要有两个函数,函数的功能如下: (1)编写函数计算两点之间的距离,从而算术图中四边形的四个边的长度以及一个对角线的长的; (2)根据海伦公式编写一个计算三角向面积的函数; 说明 1平方米=0.0015亩 输入格式: 一行中输入8个实数,每个数之间用空格隔开。从左到右每两个一组,每组表示一个点的横坐标和纵坐标。 输出格式: 输出一个实数,表示玉米的亩产量。输出保留2位小数。
时间: 2023-06-25 09:07:08 浏览: 56
以下是用C语言编写的程序:
```
#include <stdio.h>
#include <math.h>
#define PER_ACRE 666.67 // 每亩平方米数
#define CORN_WEIGHT 120000 // 玉米总产量(千克)
// 计算两点之间的距离
double distance(double x1, double y1, double x2, double y2) {
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
// 根据海伦公式计算三角形面积
double triangle_area(double a, double b, double c) {
double p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
int main() {
double x1, y1, x2, y2, x3, y3, x4, y4;
double a, b, c, d, e, f, g, h, i, j, k, l; // 四边形各边长度及对角线长度
double area1, area2, area3, area4, area; // 四个三角形面积及四边形面积
double corn_per_acre; // 单位面积玉米产量(千克/亩)
double corn_yield; // 玉米亩产量(千克/亩)
// 输入四个顶点坐标
scanf("%lf %lf %lf %lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4);
// 计算四边形各边长度及对角线长度
a = distance(x1, y1, x2, y2);
b = distance(x2, y2, x3, y3);
c = distance(x3, y3, x4, y4);
d = distance(x4, y4, x1, y1);
e = distance(x1, y1, x3, y3);
f = distance(x2, y2, x4, y4);
// 计算四个三角形面积
area1 = triangle_area(a, e, f);
area2 = triangle_area(b, f, e);
area3 = triangle_area(c, e, d);
area4 = triangle_area(d, f, b);
// 计算四边形面积
area = area1 + area2 + area3 + area4;
// 计算玉米单位面积产量
corn_per_acre = CORN_WEIGHT / (area / PER_ACRE);
// 计算玉米亩产量
corn_yield = corn_per_acre / 1000;
// 输出结果
printf("%.2lf", corn_yield);
return 0;
}
```
程序中用到了两个函数,`distance`函数计算两点之间的距离,`triangle_area`函数根据海伦公式计算三角形面积。在`main`函数中,首先输入四个顶点的坐标,然后计算四边形的各边长度及对角线长度,接着根据四边形的面积和总产量计算玉米的单位面积产量,最后将单位面积产量转换成亩产量并输出。