C语言输入四个点,从起点(0.0)依次到点1、2、3、4,输出总长的最短距离及各个点的顺序(距离可为斜线)

就是,输入四个点,从(0,0)点出发,经过各个点,不回到起点,求其最短路程大小和经过各个点顺序。麻烦大佬们写下代码……讲原理啥的不是太懂……

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <string.h>

#define N 4

int main(void) {
int i;
char str[1024];
float a[N+1][2] = {0};

float sum=0,min=FLT_MAX;
float alphaX, alphaY,dist=0;

printf("请输入4个坐标点x,y:\n");
for(i=1; i<5; i++) {
scanf("%f,%f",&a[i][0],&a[i][1]);
}

for(i=1; i<5; i++) {
alphaX = a[i][0] - a[i -1][0];
alphaY = a[i][1] - a[i -1][1];
dist=sqrt(alphaX*alphaX+alphaY*alphaY);

printf("%6.2f,%6.2f ====>%6.2f,%6.2f, 距离=%6.2f\n",a[i-1][0],a[i-1][0],a[i][0],a[i][1],dist);

if(min>dist) min = dist;
sum += dist;
}

printf("\n");
printf("最短距离=%6.2f\n",min);
printf("距离总和=%6.2f\n",sum);

getchar();
getchar();

return 0;
}
温馨提示:答案为网友推荐,仅供参考