使用函數(shù)指針完成數(shù)組的排序,要求:
1)按冒泡選擇法進(jìn)行升序或降序排列;
2) 程序包括sort,swap,ascending,descending等函數(shù)。其中sort接受ascending或descending函數(shù)指針參數(shù),一個(gè)整型數(shù)組和數(shù)組長度。
3) 函數(shù)原型提供如下:
void sort(int [],const int,int(*)(int,int));
int ascending(int,int) ;
Int descending(int,int);
4)具有提示使用者選擇升序或降序排列的功能。如果輸入1,則函數(shù)sort傳遞ascending函數(shù)的指針,數(shù)組按照升序排列并輸出,輸入2,則向函數(shù)sort傳遞descending函數(shù)的指針,數(shù)組將會(huì)按照降序排列輸出。
#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("請輸入數(shù)組長度:" ;
scanf("%d",&n);
printf("請輸入數(shù)組" ;
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));
}
求錯(cuò) |