KobeBeanBryant @ 2020-10-31 09:41:22
为啥这个代码过了样例然后测试全WA
#include<bits/stdc++.h>
using namespace std;
double a[10],b[10],j[10];
double k=0;
double g(double f,double r,double q,double x)
{
return sqrt((r-f)*(r-f)+(x-q)*(x-q));
}
double w(double d,double z,double u,double y)
{
return sqrt((z-d)*(z-d)+(y-u)*(y-u));
}
double t(double v,double w,double o,double p)
{
return sqrt((w-v)*(w-v)+(p-o)*(p-o));
}
int main(){
for(int i=0;i<3;i++)
cin>>a[i]>>b[i];
j[0]=g(a[0],b[0],a[1],b[1]);
j[1]=w(a[1],b[1],a[2],b[2]);
j[2]=t(a[0],b[0],a[2],b[2]);
k=k+j[0]+j[1]+j[2];
cout<<fixed<<setprecision(2)<<k<<endl;;
}
by haraki @ 2020-10-31 09:45:09
@KobeBeanBryant 不是很懂为啥封装三个一模一样的函数
by haraki @ 2020-10-31 09:45:48
@KobeBeanBryant 另外,最后一行输出多打了一个分号
by 星河揽清梦 @ 2020-10-31 09:47:20
建议py
by 星河揽清梦 @ 2020-10-31 09:47:59
@九天丶星河 python 3
by 幽灵特工 @ 2020-10-31 09:49:58
你的坐标值搞反啦,错误出在cin。
你读入的第一组x,y被当做两个点的横坐标处理了
by 幽灵特工 @ 2020-10-31 09:55:16
main里改成这样
for(int i=0;i<3;i++)
cin>>a[i]>>b[i];
j[0]=g(a[0],a[1],b[0],b[1]);
j[1]=w(a[1],a[2],b[1],b[2]);
j[2]=t(a[2],a[3],b[2],b[3]);
k=k+j[0]+j[1]+j[2];
能过第一个点,之后的四个点都是四舍五入的误差问题,建议你用printf输出.
by Shirο @ 2020-10-31 10:06:37
五道黑/kk
牛逼死了
by KobeBeanBryant @ 2020-11-04 19:14:21
好了现在呢```cpp
using namespace std; double a[3],b[3],j[3]; double k=0; double g(double f,double r,double q,double x) { return sqrt((r-f)(r-f)+(x-q)(x-q)); }
int main(){ for(int i=0;i<3;i++) scanf("%lf%lf",&a[i],&b[i]); j[0]=g(a[0],a[1],b[0],b[1]); j[1]=g(a[1],a[2],b[1],b[2]); j[2]=g(a[2],a[3],b[2],b[3]); k=k+j[0]+j[1]+j[2]; printf("%.2lf",k); }
by KobeBeanBryant @ 2020-11-16 18:22:03
include<bits/stdc++.h>
using namespace std; double a[3],b[3],j[3]; double k=0; double g(double f,double r,double q,double x) { return sqrt((r-f)(r-f)+(x-q)(x-q)); }
int main(){ for(int i=0;i<3;i++) scanf("%lf%lf",&a[i],&b[i]); j[0]=g(a[0],a[1],b[0],b[1]); j[1]=g(a[1],a[2],b[1],b[2]); j[2]=g(a[2],a[3],b[2],b[3]); k=k+j[0]+j[1]+j[2]; printf("%.2lf",k); }
代码好了,然后问个小问题:printf怎么输出