标题:知道三角形三个顶点坐标,求面积,我觉得我的没错,但未通过,麻烦大佬帮忙 ...
只看楼主
ws19103330
Rank: 1
来 自:温柔
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-10-28
结帖率:100%
已结贴  问题点数:20 回复次数:6 
知道三角形三个顶点坐标,求面积,我觉得我的没错,但未通过,麻烦大佬帮忙看下
#include<stdio.h>
#include<math.h>
double dist(double x1,double y1,double x2,double y2);//求边长
int main()
{
    int x1,y1,x2,y2,x3,y3;
    scanf("%d %d %d %d %d %d",&x1,&y1,&x2,&y2,&x3,&y3);
   
    double a=dist(x1,y1,x2,y2);
    double b=dist(x2,y2,x3,y3);
    double c=dist(x1,y1,x3,y3);
    double s=(a+b+c)/2;
   
    double S=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("%.2lf",S);
    return 0;
}
double dist(double x1,double y1,double x2,double y2)
{
    double dist = sqrt(pow(x1-x2,2)+pow(y1-y2,2));
    return dist;
}

搜索更多相关主题的帖子: 三角形 double 面积 sqrt 坐标 
2019-10-28 14:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
“但未通过” --- 过不过,要看题目要求,没有题目那都是瞎鸡巴乱猜。

说两个题外话
a. 已知三个顶点坐标求面积有公式, x1*y2 + x2*y3 + x3*y1 - x1*y3 - x2*y1 - x3*y2 绝对值的一半。
b. 已知两个端点坐标求度,有标准函数 hypot,而 sqrt(pow(x1-x2,2)+pow(y1-y2,2)) 即不能保证精度,也不能保证不溢出。

2019-10-28 16:44
ws19103330
Rank: 1
来 自:温柔
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-10-28
得分:0 
回复 2楼 rjsp
我重改了下,问题少了,但还有问题 ,麻烦看看?
#include<stdio.h>
#include<math.h>

float dist(float x1,float y1,float x2,float y2);
int main()
{
    float x1,y1,x2,y2,x3,y3;
    scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
   
    float a=dist(x1,y1,x2,y2);
    float b=dist(x2,y2,x3,y3);
    float c=dist(x1,y1,x3,y3);
    float s=(a+b+c)/2;
   
    float S=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("%.2f",S);
    return 0;
}
float dist(float x1,float y1,float x2,float y2)
{
    float dist = sqrt(pow(x1-x2,2)+pow(y1-y2,2));
    return dist;
}

测试点1    答案正确    312KB    1MS
测试点2    答案错误    308KB    3MS??
测试点3    答案错误    312KB    3MS??
测试点4    答案正确    316KB    3MS
测试点5    答案正确    304KB    3MS
测试点6    答案正确    308KB    3MS
测试点7    答案正确    308KB    3MS
测试点8    答案正确    312KB    4MS
测试点9    答案正确    316KB    3MS
测试点10    答案正确    320KB    3MS
2019-10-28 16:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 3楼 ws19103330
我在2楼说的三点,你一条都没改。
还是没给出题目要求,还是用pow,还是用海伦公式。

这也就算了,却还把好好的double改为了float
2019-10-28 17:15
ws19103330
Rank: 1
来 自:温柔
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-10-28
得分:0 
回复 4楼 rjsp
【题目描述】
平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少,精确到小数点后两位。

【输入】
输入仅一行,包括6个单精度浮点数,分别对应x1,y1,x2,y2,x3,y3。

【输出】
输出也是一行,输出三角形的面积,精确到小数点后两位。

【输入样例】
0 0 4 0 0 3
【输出样例】
6.00

#include <stdio.h>
#include <math.h>
int main()
{
    float x1,y1,x2,y2,x3,y3;
    scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
    float s=fabs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);
    printf("%.2f",s);
    return 0;
}
现在好像还是错的
2019-10-28 17:33
阿杰su
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2019-10-28
得分:0 
2019-10-28 21:04
温柔
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2019-10-28
得分:0 
回复 5楼 ws19103330
忘除2了
2019-10-28 21:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497478-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.453168 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved