利用C或C++编程求空间一个已知点到另外n个点的重心的距离

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:17:09
点的重心就是只x=a1+a2+a3/3,y=b1+b2+b3/3,z=c1+c2+c3/3,由于本人不太懂编程,而且急用程序,请高人尽量详细回答,谢谢谢谢谢谢!
最好是用for做,谢谢!

#include <math.h>
#include <iostream>
using namespace std;
void main()
{
float x,y,z,s1=0,s2=0,s3=0,result;
int n;
cout<<"请输入点数"<<endl;
cin>>n;
for(int i=0;n<2;i++)
{
cout<<"你输入错误的点数,请重新输入 "<<endl;
cin>>n;
}
float *a=new float[n];
float *b=new float[n];
float *c=new float[n];
for(i=0;i<n;i++)
{
cout<<"点 "<<i+1<<"的三维坐标为 ";
cin>>a[i]>>b[i]>>c[i];
}
cout<<"请输入已知点的的X,Y,Z坐标"<<endl;
cin>>x>>y>>z;
for(i=0;i<n;i++)
{
s1=a[i]+s1;
s2=b[i]+s2;
s3=c[i]+s3;
}
result=sqrt((x-s1/n)*(x-s1/n)+(y-s2/n)*(y-s2/n)+(z-s3/n)*(z-s3/n));
cout<<"结果为 "<<result<<endl;
}