一道C++的编程问题,想要把具有相同属性的东西归类。
答案:1 悬赏:40 手机版
解决时间 2021-03-26 15:05
- 提问者网友:容嬷嬷拿针来
- 2021-03-26 12:12
一道C++的编程问题,想要把具有相同属性的东西归类。
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-03-26 13:06
/// test.cpp:
/// CopyRight (c) 2014 Vobile Inc.
/// Author: XiaoH
/// Created: 2014-06-23
#include
#include
#include
typedef struct point {
int x,y,z;
}POINT;
typedef struct disdence {
POINT a,b;
double dst;
}PD;
double Squ(double num) {
return num * num;
}
double Distance(POINT a,POINT b) {
return sqrt(Squ(a.x - b.x) + Squ(a.y - b.y) + Squ(a.z - b.z));
}
int main() {
POINT pt[10];
PD tmp,dst[45];
int i,j,k,n,N;
printf("数据点数 : ");
scanf("%d",&n);
if(n > 10) n = 10;
N = n*(n - 1)/2;
for(i = 0;i < n;i++) {
printf("点%d : ",i + 1);
scanf("%d %d %d",&pt[i].x,&pt[i].y,&pt[i].z);
}
k = 0;
for(i = 0;i < n - 1;i++) {
for(j = i + 1;j < n;j++) {
dst[k].a = pt[i];
dst[k].b = pt[j];
dst[k].dst = Distance(pt[i],pt[j]);
k++;
}
}
for(i = 0;i < N - 1;i++) {
k = i;
for(j = i + 1;j < N;j++) {
if(dst[k].dst < dst[j].dst)
k = j;
}
if(k != i) {
tmp = dst[k];
dst[k] = dst[i];
dst[i] = tmp;
}
}
for(i = 0; i < N; i++) {
printf("(%3d,%3d,%3d) -- ",dst[i].a.x,dst[i].a.y,dst[i].a.z);
printf("(%3d,%3d,%3d) : ",dst[i].b.x,dst[i].b.y,dst[i].b.z);
printf("%.2lf\n",dst[i].dst);
}
return 0;
}
/// CopyRight (c) 2014 Vobile Inc.
/// Author: XiaoH
/// Created: 2014-06-23
#include
#include
#include
typedef struct point {
int x,y,z;
}POINT;
typedef struct disdence {
POINT a,b;
double dst;
}PD;
double Squ(double num) {
return num * num;
}
double Distance(POINT a,POINT b) {
return sqrt(Squ(a.x - b.x) + Squ(a.y - b.y) + Squ(a.z - b.z));
}
int main() {
POINT pt[10];
PD tmp,dst[45];
int i,j,k,n,N;
printf("数据点数 : ");
scanf("%d",&n);
if(n > 10) n = 10;
N = n*(n - 1)/2;
for(i = 0;i < n;i++) {
printf("点%d : ",i + 1);
scanf("%d %d %d",&pt[i].x,&pt[i].y,&pt[i].z);
}
k = 0;
for(i = 0;i < n - 1;i++) {
for(j = i + 1;j < n;j++) {
dst[k].a = pt[i];
dst[k].b = pt[j];
dst[k].dst = Distance(pt[i],pt[j]);
k++;
}
}
for(i = 0;i < N - 1;i++) {
k = i;
for(j = i + 1;j < N;j++) {
if(dst[k].dst < dst[j].dst)
k = j;
}
if(k != i) {
tmp = dst[k];
dst[k] = dst[i];
dst[i] = tmp;
}
}
for(i = 0; i < N; i++) {
printf("(%3d,%3d,%3d) -- ",dst[i].a.x,dst[i].a.y,dst[i].a.z);
printf("(%3d,%3d,%3d) : ",dst[i].b.x,dst[i].b.y,dst[i].b.z);
printf("%.2lf\n",dst[i].dst);
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯