C++小程序哪里错了啊

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:25:18
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct Point{
int a,b,c;
Point(int da,int db,int dc):a(da),b(db),c(dc){}
};
int dis(const Point& m,const Point& n){
return (m.a-n.a)*(m.a-n.a)+(m.b-n.b)*(m.b-n.b)+(m.c-n.c)*(m.c-n.c);
}
bool operator<(const Point& m,const Point& n){
if(m.a!=n.a)
return m.a<n.a;
if(m.b!=n.b)
return m.b<n.b;
return m.c<n.c;
}
int main(){
for (int n,m=0;cin>>n&&n;)
{ cout<<(m++?"\n":"");
vector<Point> v(n),vr;
for (int a,b,c,i=0;i<n&&cin>>v[i].a>>v[i].b>>v[i].c;++i);
sort(v.begin(),v.end());
int min=1<<30;
for (int i=0;i<n-1;++i)
for (int j=i+1;j<n;++j)
{
int k=dis(v[i]

觉得你写代码花哨的语言技巧太多了~~
这题不需要sort排序的
记住在OnlineJudge上计算出一组结果就输出一组结果,也没必要用vr存储
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct Point{
int a,b,c;
Point(){}//添加一个默认构造函数
Point(int da,int db,int dc):a(da),b(db),c(dc){}
};
int dis(const Point& m,const Point& n){
return (m.a-n.a)*(m.a-n.a)+(m.b-n.b)*(m.b-n.b)+(m.c-n.c)*(m.c-n.c);
}
bool operator<(const Point& m,const Point& n){
if(m.a!=n.a)
return m.a<n.a;
if(m.b!=n.b)
return m.b<n.b;
return m.c<n.c;
}
int main(){
int mini,minj,n;
cin>>n;
while(n)
{
vector<Point> v(n);
for (int a,i=0;i<n&&cin>>v[i].a>>v[i].b>>v[i].c;++i);
int min=1<<30;
for (i=0;i<n;++i)
for (int j=i+1;j<n;++j)
{
int k=dis(v[i],v[j]);
if(k<min)
{