#include<iostream> #include<cmath> using namespace std; int main() { int n ; cin>>n; double x[n+1]; double y[n+1]; for(int i = 0 ;i < n ; i ++){ cin>>x[i]>>y[i]; } int d1 ; int d2 ; double _min = 0x3f3f3f3f; for(int i = 0; i< n - 1 ; i ++){ for(int j = i + 1; j < n ; j ++){ double t = sqrt( ( x[i] - x[j] ) * (x[i] - x[j]) + ( y[i] - y[j]) * ( y[i] - y[j]) ) ; if( t < _min ){ _min = t; d1 = i; d2 = j; } } } if( ( x[d1]+y[d1] ) > ( x[d2]+y[d2] ) ){ // 题目要求的输出格式 int t = d1; d1 = d2; d2 = t; } printf("(%.2lf,%.2lf),(%.2lf,%.2lf),miniDist=%.3lf",x[d1],y[d1],x[d2],y[d2] , _min ); } 改为c语言
时间: 2024-03-26 09:37:01 浏览: 99
#include<stdio.h>
#include<math.h>
int main() {
int n;
scanf("%d", &n);
double x[n+1];
double y[n+1];
for(int i = 0 ;i < n ; i ++){
scanf("%lf%lf", &x[i], &y[i]);
}
int d1 ;
int d2 ;
double _min = 0x3f3f3f3f;
for(int i = 0; i< n - 1 ; i ++){
for(int j = i + 1; j < n ; j ++){
double t = sqrt( ( x[i] - x[j] ) * (x[i] - x[j]) + ( y[i] - y[j]) * ( y[i] - y[j]) ) ;
if( t < _min ){
_min = t;
d1 = i;
d2 = j;
}
}
}
if( ( x[d1]+y[d1] ) > ( x[d2]+y[d2] ) ){
int t = d1;
d1 = d2;
d2 = t;
}
printf("(%.2lf,%.2lf),(%.2lf,%.2lf),miniDist=%.3lf",x[d1],y[d1],x[d2],y[d2] , _min );
return 0;
}
阅读全文