21xrx.com
2025-04-01 10:13:29 Tuesday
文章检索 我的文章 写文章
如何用C++输入坐标并输出三角形?
2023-07-05 12:03:56 深夜i     149     0
C++ 输入 坐标 输出 三角形

在C++中,通过输入坐标和计算,我们可以输出一个三角形。下面是具体的步骤:

1. 导入头文件

需要使用 ` ` 和 ` ` 头文件,前者是为了输入输出,后者是为了计算。

2. 定义坐标

我们需要定义三个点坐标,用来表示三角形的位置。假设三个点分别为 (`x1`, `y1`), (`x2`, `y2`), (`x3`, `y3`)。

3. 计算三边长度

根据勾股定理,我们可以计算出三条边的长度。`l1` 表示线段1的长度,`l2`表示线段2的长度,`l3`表示线段3的长度。

l1 = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
l2 = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));
l3 = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));

4. 判断是否能构成三角形

三角形的任意两边之和大于第三边,我们可以通过判断三条边是否满足这个条件来确定是否能构成三角形。

if (l1 + l2 > l3 && l2 + l3 > l1 && l1 + l3 > l2)
  // 可以构成三角形
else
  // 无法构成三角形

5. 计算三角形面积

根据海伦公式,我们可以计算出三角形的面积。`p`表示三边长度的一半。

float p = (l1 + l2 + l3) / 2;
float S = sqrt(p * (p - l1) * (p - l2) * (p - l3));

6. 输出结果

将三个点和三角形面积输出到控制台。

std::cout << "输入的三个点坐标为:" << std::endl;
std::cout << "(" << x1 << ", " << y1 << ")" << std::endl;
std::cout << "(" << x2 << ", " << y2 << ")" << std::endl;
std::cout << "(" << x3 << ", " << y3 << ")" << std::endl;
std::cout << "三角形面积为:" << S << std::endl;

7. 完整代码

下面是完整的代码:

#include <iostream>
#include <cmath>
int main() {
  float x1, y1, x2, y2, x3, y3;
  std::cout << "请输入三角形三个点坐标:" << std::endl;
  std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
  float l1 = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
  float l2 = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));
  float l3 = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));
  if (l1 + l2 > l3 && l2 + l3 > l1 && l1 + l3 > l2) {
    float p = (l1 + l2 + l3) / 2;
    float S = sqrt(p * (p - l1) * (p - l2) * (p - l3));
    std::cout << "输入的三个点坐标为:" << std::endl;
    std::cout << "(" << x1 << ", " << y1 << ")" << std::endl;
    std::cout << "(" << x2 << ", " << y2 << ")" << std::endl;
    std::cout << "(" << x3 << ", " << y3 << ")" << std::endl;
    std::cout << "三角形面积为:" << S << std::endl;
  } else
    std::cout << "输入的三个点无法构成三角形!" << std::endl;
  
  return 0;
}

现在,我们就可以输入三个点的坐标,得到构成的三角形面积了!

  
  

评论区

请求出错了