鱼C论坛

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

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

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

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

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

x
我项输入:0 3 3 0 0 4为三个点的坐标
构成一个直角三角形,从而好判断三角形的周长和面积。
下边是我的代码,不知道为什么不对。
  1. /**给定平面上任意三个点的坐标(x1,y1),(x2,y2),(x3,y3),编写程序检验他们能否构成三角形。
  2. 若这3个点不能构成三角形,则输出"Impossible";若可以,则输出该三角形的周长和面积
  3. */
  4. #include <stdio.h>
  5. int main()
  6. {
  7.     //6.30 输入:0 3 3 0 0 4
  8.     float x1,x2,x3,y1,y2,y3;//三个点的横纵坐标
  9.     float a,b,c,s,l,area;
  10.     scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
  11.     a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));//勾股定理
  12.     b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
  13.     c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
  14.    
  15.     if(a+b>c&&a+c>b&&b+c>a)
  16.     {
  17.         s=(a+b+c)/2;
  18.         area=sqrt(s*(s-a)*(s-b)*(s-c));
  19.         l=a+b+c;
  20.         printf("L = %.2f\nA = %.2f\n",l,area);
  21.     }else{
  22.         printf("Impossible!\n");
  23.     }
  24.     return 0;
  25. }
复制代码

请帮我分析一波,详细详细详细点,谢谢啦
最佳答案
2021-4-16 21:30:42
先在第14行处输出abc看一下是否正确
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

看错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 21:30:42 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
先在第14行处输出abc看一下是否正确
小甲鱼最新课程 -> https://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);
运行结果是:
  1. 0 3 3 0 0 4
  2. ab=-1073741824
  3. ac=1074854006
  4. bc=0
  5. L = 10.24
  6. A = 1.50
复制代码

为什么会这样?
小甲鱼最新课程 -> https://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  输出浮点数??
小甲鱼最新课程 -> https://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的一个小钝角三角形
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://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);
上年的春天那学期学了半年,不怎么用,粗心我这人
然后输出了:
  1. 0 3 3 0 0 4
  2. ab=4.242640
  3. ac=1.000000
  4. bc=5.000000
  5. L = 10.24
  6. A = 1.50
复制代码

我想的3个点的坐标是:(0,0) (3,0) (3,4)
所以是个:底边为3,高为4的直角三角形
我是这么想的
小甲鱼最新课程 -> https://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);
上年的春天那学期学了半年,不怎么用,粗心我这人
然 ...

代码没问题,是你输入的坐标和你想的不一致
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯 应该是
你那种想法我也想了
就是还是不太清楚具体的过程,以及为什么是那样的
小甲鱼最新课程 -> https://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)
这都不一样,还有啥想不明白的,坐标轴画一下不就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 03:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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