社区讨论

求最近的点对,有问题求助大佬们

学术版参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@ltb6qnyj
此快照首次捕获于
2024/03/03 15:23
2 年前
此快照最后确认于
2024/03/03 17:03
2 年前
查看原帖
.随机二维平面n个点,找出其中距离最近的两个,输出那两个点。 我不知道这个哪里有问题,就是有点时候这个最近距离不对,求大佬们帮忙看看,感谢
CPP
#include<bits/stdc++.h>
using namespace std;
struct dian{
	int x,y;
}; 
int main(){
	int num;
	cin>>num;
	dian d[num];
	float mi=100;//最近距离
	float dis;//两点间距离
	int n,m;
	for(int i=0;i<num;i++){
		cin>>d[i].x>>d[i].y;
	}
	for(int i=0;i<num;i++){
		for(int j=i+1;j<num;j++){
			dis=sqrt(pow((d[i].x-d[j].x),2)+pow((d[i].y-d[j].y),2));
			if(dis<=mi){
				mi=dis;
				n=i;
				m=j;}
			
		}
	}
	cout<<d[n].x<<" "<<d[n].y<<" "<<d[m].x<<" "<<d[m].y<<" "<<endl;
	cout<<dis<<endl;
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...