0
已解决
胡钰妍
资深光能
资深光能
求思路,核心
胡钰妍在2021-05-29 18:04:38追加了内容
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
double c=99999;
double a[1000],b[1000];
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(sqrt((a[i]-b[i]*a[i]-b[i])-(a[j]-b[j]*a[j]-b[j]))<c){
c=sqrt((a[i]-b[i]*a[i]-b[i])-(a[j]-b[j]*a[j]-b[j]));
}
}
}
printf("%.4f",c);
return 0;
}
哪错了?急急急
胡钰妍在2021-05-30 15:05:58追加了内容
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
double c=99999;
double a[1000],b[1000];
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(sqrt(((a[i]-b[i])*(a[i]-b[i]))+((a[j]-b[j])*(a[j]-b[j])))<c>0){
c=sqrt(((a[i]-b[i])*(a[i]-b[i]))+((a[j]-b[j])*(a[j]-b[j])));
}
}
}
printf("%.4f",c);
return 0;
}
哪错了
0
已采纳
张以沫
中级守护
中级守护
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(j!=i){double k;
if(a[i]!=a[j]&&b[i]!=b[j])
k=sqrt(abs(a[i]-a[j])*abs(a[i]-a[j])+abs(b[i]-b[j])*abs(b[i]-b[j]));
if(a[i]==a[j]){k=abs(b[i]-b[j]); // cout<<k<<endl;
}
if(b[i]==b[j]){k=abs(a[i]-a[j]);
// cout<<k<<endl;
}
if(k<=h)h=k;
}
}
}
不喜勿喷,望采纳~
0
李易泽
中级守护
中级守护
这一题主要要知道怎么求两个坐标的距离。
公式如下:sqrt( (x-x1)*(x-x1)+(y-y1)*(y-y1) )
这个主要用的是勾股定理
要用头文件 #include<cmath>
然后就是用“打擂台”的方法 求最小值 就可以了
望采纳,谢谢
0