使用函数指针完成数组的排序,要求:
1)按冒泡选择法进行升序或降序排列;
2) 程序包括sort,swap,ascending,descending等函数。其中sort接受ascending或descending函数指针参数,一个整型数组和数组长度。
3) 函数原型提供如下:
void sort(int [],const int,int(*)(int,int));
int ascending(int,int) ;
Int descending(int,int);
4)具有提示使用者选择升序或降序排列的功能。如果输入1,则函数sort传递ascending函数的指针,数组按照升序排列并输出,输入2,则向函数sort传递descending函数的指针,数组将会按照降序排列输出。
#include
int (*ascending)(int a[],int n)
{int i,j,m, n,a[];
for(i=0;i
{for(j=i+1;j
if(a>a[j])
{p=a;a=a[j];a[j]=m;}
}
return a;
}
int (*descending)(int a[],int n)
{int i,j,m, n,a[];
for(i=0;i
{for(j=i+1;j
if(a
{p=a;a=a[j];a[j]=m;}
}
return a;
}
void sort(int a[],const int x,int(*p)(int a[],int n))
{int i,n,x;int a[]; int (*p)(int a[],int n);
for(i=0;i
printf("%d",*p);
}
void main()
{int i,x,n;int a[];
printf("升序请输入1" ;
printf("降序请输入2" ;
scanf("%d",&x);
printf("请输入数组长度:" ;
scanf("%d",&n);
printf("请输入数组" ;
for(i=0;i
scanf("%d",&a);
if(x==1) void sort(int a[],int const x,int(*ascending)(int a[],int n));
else void sort(int a[],int const x,int(*descending)(int a[],int n));
}
求错 |