(c语言版)小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。
#include<stdio.h>
#include<math.h>
struct friend{
int height;
int dif;
};
void mysort(struct friend *a,int n){
struct friend t={0};
for(int i=1;i<n;i++){
for(int j=0;j<n-i;j++){
if(a[j].dif>a[j+1].dif||a[j].dif==a[j+1].dif&&a[j].height>a[j+1].height){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main(){
int height=0;
int nums=0;
scanf("%d%d",&height,&nums);
struct friend friends[nums];
for(int i=0;i<nums;i++){
scanf("%d",&friends[i].height);
friends[i].dif=abs(friends[i].height-height);
}
mysort(friends,nums);
for(int i=0;i<nums;i++){
printf("%d ",friends[i].height);
}
}