编程练习:100个点构成的最短线段长度

思路:要构成线段,即长度大于0;存入二维数组,比较时第i个点只和i后面的点计算距离,避免重复,用min记录最短距离

//100个点,任意两点构成线段
//求在可以构成的所有线段中,长度最小的线段长度
#include<stdio.h>
#include<math.h>
#define n 3
int main(){
	double a[n][2]={0},min,d;
	int i,j;
	for(i=0;i<n;i++){
		for(j=0;j<2;j++){
			scanf("%lf",&a[i][j]);
		}
	}
	min=10000;//尽可能大的一个数 
	for(i=0;i<n-1;i++){//最后一个距离=倒数第二个点和倒数第一个点之间 
		for(j=i+1;j<n;j++){
			d=pow(a[i][0]-a[j][0],2)+pow(a[i][1]-a[j][1],2);
			d=sqrt(d);
			if((d<min)&&(d>0)) min=d;//d>0 --构成线段 
		}
	}
	printf("%lf",min);
} 
发布了15 篇原创文章 · 获赞 16 · 访问量 5349

猜你喜欢

转载自blog.csdn.net/qq_37209590/article/details/104117503