wmbwww @ 2023-09-01 19:28:22
#include <bits/stdc++.h>
using namespace std;
struct zc {
int x;
int y;
}a[4];
int cd(zc a, zc b) {
double a1 = pow((b.x - a.x), 2.0);
double a2 = pow((b.y - a.y), 2.0);
double zc = pow((a1 + a2), 1 / 2);
return zc;
}
int main() {
for (int i = 1; i <= 3; i++) {
cin >> a[i].x >> a[i].y;
}
double zzc = cd(a[1], a[2]) + cd(a[1], a[3]) + cd(a[2], a[3]);
printf("%0.2lf", zzc);
return 0;
}
按公式写的
by _Haoomff_ @ 2023-09-01 19:29:41
@wmbwww 绝对值!!!
by dingzj2022 @ 2023-09-01 19:32:39
@wmbwww 绝对值
by _Adolf_Hitler_ @ 2023-09-01 19:33:51
@wmbwww
int cd()
是不是得改成double cd()
by wmbwww @ 2023-09-01 19:34:31
@Haoomff ,@dingzj2022 知道了,谢谢
by Rieman_sum @ 2023-09-01 19:34:48
@wmbwww abs函数
然后你的类型
by Iniaugoty @ 2023-09-01 19:41:27
@wmbwww double zc = pow((a1 + a2), 1 / 2);
改成 double zc = pow((a1 + a2), 0.5);
。错误原因是 1 / 2
的类型是 int
,算出来值为
by Iniaugoty @ 2023-09-01 19:43:04
@Guo1 @dingzj2022 @Haoomff 和绝对值没有关系啊,你们不知道平方非负吗
by _Haoomff_ @ 2023-09-01 19:44:25
@gty314159 嗯对,你是对的。脑子挂了……
by Iniaugoty @ 2023-09-01 19:44:42
@wmbwww 另外最好不要用 pow()
函数吧,平方可以直接手动写乘法;平方根可以用 sqrt(x)
表示 pow
貌似有一点误差
by dingzj2022 @ 2023-09-01 19:49:32
@gty314159 哦(⊙o⊙)