问题标题: 酷町堂:5234

0
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
我要回答