大哥大姐帮忙写个程序哦!!!

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:39:34
我有个程序急需要有人帮忙写一下,请高人帮忙哦!
有八个共面的原子,坐标也是知道的,分别编号1-8,想求任意四个原子之间的距离和,之后按照由大到小的顺序排列,并且输出这四个原子的编号。
这个程序应该怎么写啊?急用!请帮忙!

#include <math.h>
#include <stdio.h>
int p8q4(){
return 8*7*6*5/4/3/2/1;
}
float jiuv1(int i,int j,float x[],float y[]){
float juli1;
juli1=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
return juli1;
}
void ins(int* nn){
int n[4],nj=*nn+1,err=0;
*nn=nj;
n[0]=nj%10;nj=(nj-n[0])/10;if(n[0]>7)err=1;
n[1]=nj%10;nj=(nj-n[1])/10;if(n[1]>=n[0]){n[0]=n[1];err=1;}
n[2]=nj%10;nj=(nj-n[2])/10;if(n[2]>=n[1]){n[1]=n[2];err=1;}
n[3]=nj;if(n[3]>=n[2]){n[2]=n[3];err=1;}
if(err==1){nj=((n[3]*10+n[2])*10+n[1])*10+n[0];*nn=nj;ins(nn);}
}

float jiuv(int* i,int* nn,float x[],float y[]){
float juli;
int n[4],nj=*nn;
n[0]=nj%10;nj=(nj-n[0])/10;
n[1]=nj%10;nj=(nj-n[1])/10;
n[2]=nj%10;nj=(nj-n[2])/10;
n[3]=nj;
juli=0;
juli=juli+jiuv1(n[0],n[1],x,y);
juli=juli+jiuv1(n[0],n[2],x,y);
juli=juli+jiuv1(n[0],n[3]