首页 新闻 会员 周边 捐助

《T和Y的计划》有没有人帮我看看哪里错了 谢谢

0
悬赏园豆:10 [已关闭问题] 关闭于 2013-11-14 13:11
   

 

Description

ACM星球的程序艺术学院的T和Y相恋了。Y快要毕业了,为了前途,Y也许要去别的星球发展他的事业。于是,T和Y开始计划以后如何见面。T有个好主意,她跟Y约定在距离ACM星球和Future星球连线的中点最短的Heart星球见面,你能帮他们找出来浪漫的Heart星球吗?

Input

首行为一个数N,表示有N个星球。 接下来N行,每行包括三个小数X,Y,Z,表示一个星球的坐标。 第N+2行包括三个小数X,Y,Z,表示ACM星球的坐标。 第N+3行包括三个小数X,Y,Z,表示Future星球的坐标。 N<=5000,1<=X,Y,Z<=99999

Output

Heart星球的坐标。(保留3位小数)

Sample Input

5
1062.961900 47382.348900 49636.324000
21829.052500 75418.119200 6862.009300
24339.931000 6028.722000 27365.733500
20111.459200 22797.250400 42073.367900
29601.644400 39841.340000 55461.667800
21829.052500 75418.119200 6862.009300
20111.459200 22797.250400 42073.367900

Sample Output

21829.053 75418.119 6862.009

# include<stdio.h>

# include<math.h>

int main()

{

 int n,i,j;

 double x[5000],y[5000],z[5000],a,b,c,t,d,f,g;double m[5000];

 scanf("%d",&n);

 for(i=0;i<n+2;i++)

  scanf("%lf %lf %lf",&x[i],&y[i],&z[i]);

 a=(x[n+1]+x[n])/2; b=(y[n+1]+y[n])/2; c=(z[n+1]+z[n])/2;

 for(i=0;i<n;i++)

 {

  m[i]=sqrt((x[i]-a)*(x[i]-a)+(y[i]-b)*(y[i]-b)+(z[i]-c)*(z[i]-c));

 }

 for(j=1;j<=n;j++)

  for(i=0;i<n-1;i++)

   if(m[i]>m[i+1])

   {

              t=m[i];

     m[i]=m[i+1];

     m[i=1]=t;

     d=x[i];

     x[i]=x[i+1];

     x[i+1]=d;

     f=y[i];

     y[i]=y[i+1];

     y[i+1]=f;

     g=z[i];

     z[i]=z[i+1];

     z[i+1]=g;

   }

  printf("%.3lf %.3lf %.3lf\n",x[0],y[0],z[0]);

return 0;

} 可是我的答案是下面这样的 

hanqiu的主页 hanqiu | 初学一级 | 园豆:191
提问于:2013-11-14 09:00
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册