鱼C论坛

 找回密码
 立即注册
查看: 1447|回复: 10

[已解决]为何求三角形的周长面积不对

[复制链接]
发表于 2021-4-16 19:17:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我项输入:0 3 3 0 0 4为三个点的坐标
构成一个直角三角形,从而好判断三角形的周长和面积。
下边是我的代码,不知道为什么不对。
/**给定平面上任意三个点的坐标(x1,y1),(x2,y2),(x3,y3),编写程序检验他们能否构成三角形。
若这3个点不能构成三角形,则输出"Impossible";若可以,则输出该三角形的周长和面积
*/
#include <stdio.h>
int main()
{
    //6.30 输入:0 3 3 0 0 4
    float x1,x2,x3,y1,y2,y3;//三个点的横纵坐标
    float a,b,c,s,l,area;
    scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
    a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));//勾股定理
    b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
    c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
    
    if(a+b>c&&a+c>b&&b+c>a)
    {
        s=(a+b+c)/2;
        area=sqrt(s*(s-a)*(s-b)*(s-c));
        l=a+b+c;
        printf("L = %.2f\nA = %.2f\n",l,area);
    }else{
        printf("Impossible!\n");
    }
    return 0;
}
请帮我分析一波,详细详细详细点,谢谢啦
最佳答案
2021-4-16 21:30:42
先在第14行处输出abc看一下是否正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-16 21:27:55 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-4-16 21:29 编辑

看错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 21:30:42 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
先在第14行处输出abc看一下是否正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 14:13:19 | 显示全部楼层
wp231957 发表于 2021-4-16 21:30
先在第14行处输出abc看一下是否正确

我在14行输入了:printf("ab=%d\nac=%d\nbc=%d\n",a,b,c);
运行结果是:
0 3 3 0 0 4
ab=-1073741824
ac=1074854006
bc=0
L = 10.24
A = 1.50
为什么会这样?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 14:17:00 From FishC Mobile | 显示全部楼层
肖-肖 发表于 2021-4-17 14:13
我在14行输入了:printf("ab=%d\nac=%d\nbc=%d\n",a,b,c);
运行结果是:


你也不是新手,咋还用%d  输出浮点数??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 14:18:29 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-4-17 14:19 编辑
肖-肖 发表于 2021-4-17 14:13
我在14行输入了:printf("ab=%d\nac=%d\nbc=%d\n",a,b,c);
运行结果是:



面积1.5貌似没有错,033004
不正好构成底边为1高度为3的一个小钝角三角形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 14:24:04 From FishC Mobile | 显示全部楼层
肖-肖 发表于 2021-4-17 14:13
我在14行输入了:printf("ab=%d\nac=%d\nbc=%d\n",a,b,c);
运行结果是:


周长也对1+5+根号18
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 14:28:10 | 显示全部楼层
wp231957 发表于 2021-4-17 14:18
面积1.5貌似没有错,033004
不正好构成底边为1高度为3的一个小钝角三角形

我改成了:printf("ab=%f\nac=%f\nbc=%f\n",a,b,c);
上年的春天那学期学了半年,不怎么用,粗心我这人
然后输出了:
0 3 3 0 0 4
ab=4.242640
ac=1.000000
bc=5.000000
L = 10.24
A = 1.50
我想的3个点的坐标是:(0,0) (3,0) (3,4)
所以是个:底边为3,高为4的直角三角形
我是这么想的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 14:39:21 From FishC Mobile | 显示全部楼层
肖-肖 发表于 2021-4-17 14:28
我改成了:printf("ab=%f\nac=%f\nbc=%f\n",a,b,c);
上年的春天那学期学了半年,不怎么用,粗心我这人
然 ...

代码没问题,是你输入的坐标和你想的不一致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 14:51:28 | 显示全部楼层
wp231957 发表于 2021-4-17 14:39
代码没问题,是你输入的坐标和你想的不一致

嗯 应该是
你那种想法我也想了
就是还是不太清楚具体的过程,以及为什么是那样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 14:58:20 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-4-17 14:59 编辑
肖-肖 发表于 2021-4-17 14:51
嗯 应该是
你那种想法我也想了
就是还是不太清楚具体的过程,以及为什么是那样的


0 3 3 0 0 4
我想的3个点的坐标是:(0,0) (3,0) (3,4)
这都不一样,还有啥想不明白的,坐标轴画一下不就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 17:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表