用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 用chatGpt给你验证一下,多学几个方案
页:
[1]