问题标题: 酷町堂:1473

0
0

0
已采纳
吴君昊
吴君昊
新手光能
新手光能
勾股定理,用(在sqrt内用)

还要用一个double变量存sqrt,示例:double d=sqrt(........);

最后printf,别忘了头文件

<iostream>

<cmath>

<cstdio>

祝你AC

0
许金夫
许金夫
初级天翼
初级天翼

这道题要用到勾股定理:直角三角形中斜边的平方=两直角边平方的和

所以通过Xa-Xb的得到一个边,Ya-Yb得到另一个边,加起来再开方(sqrt)在保留小数就AC了

0
许金夫
许金夫
初级天翼
初级天翼

你评论了啥,直接讲,评论我看不到

0
缪鲲鹏
缪鲲鹏
新手光能
新手光能

我觉得许金夫讲的还挺好的, 难道是因为你不熟悉勾股定理吗?

我来给你讲一下:

首先要知道x为横轴,y为纵轴(应该都知道)

我们要求的也就是AB(c)这条线

题目给出:A(Xa,Ya),B(Xb,Yb)

BC(a)这条线的长度也就是abs(Xa-Xb)

AC(b)这条线的长度也就是abs(Ya-Yb)

根据勾股定理的公式a²+b²=c²

就可以求出AB(c)这条边长度是sqrt(c²),也就是sqrt(a²+b²),再简练一点也就变成了sqrt(pow(Xa-Xb,2)+pow(Ya-Yb, 2))

注意了,题目要求要保留三位小数!

知道这些后,事情就变得非常简单了!

printf("%.3lf", sqrt(pow(Xa-Xb,2)+pow(Ya-Yb, 2)));

 

缪鲲鹏在2020-02-29 23:28:17追加了内容

答案里没有abs()是因为一个数的平方一定是非负数

0
许金夫
许金夫
初级天翼
初级天翼

@吴君昊 不是a-Xb,是Xa-Xb(我开不了评论)

我要回答