/*采用选择发对一组数据进行升序或排序*/怎么编译不出来啊!请高手请教
#include <stdio.h>#define N10
void bubble(int *,int,int(*)(int,int));
int ascending(int,int);
int descending(int,int);
void main()
{
int i,order,a[N]={3,7,9,11,0,6,7,5,4,2};
printf("输入1-----升序排列\n");
printf("输入2-----降序排列");
scanf("%d",&order);
printf("初始数据;\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
if(order==0)
{
bubble(a,N,ascending);
printf("\n升序排列:\n");
}
else
{
bubble(a,N,descending);
printf("\n降序排列:\n");
}
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}
void bubble(int *pa,int n,int(*pa) (int,int))
{
int i,j,k;
void swap(int *,int *);
for(i=0;i<n-1;i++)
{
k=1;
for(j=i+1;j<n;j++)
if((*ph) (pa[j],pa[k])) k=j;
if(k!=i) swap(&pa[j])(&pa[k]);
}
}
void swap(int *pi,int *pk)
{
int temp;
temp=*pi;
*pi=*pk;
*pk=temp;
}
int ascending(int a,int b)
{
return a<b;
}
int descending(int a,int b)
{
return a>b;
}