#include<stdio.h>
//保持顺序返回0,交换顺序返回1
int rule1(double lh,double rh){return lh>rh;}//if(lh>rh) return 1;else return 0;
int rule2(double lh,double rh){return lh<rh;}
#define swap(x,y){double t = x;x = y;y = t;}//除了宏函数都得传地址才能转换两值
void sort(double a[],int n,int(*p)(double,double))
{
int i,j;
for(i = 0;i<n;i++)
for(j = i+1;j<n;j++)
if(p(a[i],a[j]) == 1)
swap(a[i],a[j])
}
void input(double a[],int n)
{
printf("shuru\n");
int i ;
for(i = 0;i<10;i++)
scanf("%lf",&a[i]);//a+i
printf("%g,%g,%g",a[1],a[2],a[4]);
}
void show(double a[],int n)
{
printf("shuchu:\n");
int i;
for(i = 0;i<10;i++)
printf("%g ",a[i]);
printf("\n");
}
//int(*x(void(*p)()))(char);
//typedef void(*T)();//typedef int(*U)(char);
//U x(T p);
int main()
{
double a[10];
input(a,10);
sort(a,10,&rule1);
show(a,10);
sort(a,10,&rule2);
show(a,10);
return 0;
}