lijialong1313 发表于 2023-4-6 09:09

用C/C++解决算法题:OXY三角形面积

题目描述:

输入三角形的A点、B点坐标x1 y1 x2 y2,计算出以原点和这2个点构成的三角形OAB的面积(保留一位小数)。(-1000<=x1,y1,x2,y2<=1000,三角形一定存在)

输入样例:

0 3 2 2

输出样例:

3



思路:

三角形面积公式可以通过两条临边加上角度得到。即S=1/2*OA*OB*Sin角AOB。

化简可知其为:S=1/2*|x1y2-x2y1|,因此可直接使用公式计算。

C/C++代码:
#include <stdio.h>
int main() {
      int x1, y1, x2, y2;
      scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
      
      float ans;//定义面积
      float d;
      
      d = (x1 * y2 - x2 * y1);
    int a;
    double b;
      if (d < 0) {
                d = 0 - d;
      }
      ans = 0.5 * d;//求面积
    a=(int)ans;
    b=(double)a;
    if(b==ans)
    {
      printf("%d", a);
    }
    else{
      printf("%0.1f", ans);
    }
      return 0;
}

萌新第一次发帖 :lol

weiya909 发表于 2023-4-6 11:02

用chatGpt给你验证一下,多学几个方案
页: [1]
查看完整版本: 用C/C++解决算法题:OXY三角形面积